Я хочу послушать сигнал, излучаемый initialItem
в QML StackView
. И мне кажется, что я ошибаюсь в том, как это делать.
StackView {
id: stackView
initialItem:{
myHomeForm{
onMySignal{
myArray=signalArray
}
}
}
anchors.fill: parent
}
В документации говорится только о том, как установить свойство, но не о прослушивании сигнала. Пожалуйста, помогите, спасибо большое
Вы можете установить соединение в Component.onCompleted
через connect
:
import QtQuick 2.9
import QtQuick.Controls 2.2
ApplicationWindow {
id: window
visible: true
width: 640
height: 480
title: qsTr("Stack")
StackView {
id: stackView
initialItem: Page {
id: page
anchors.fill: parent
signal mySignal()
Button {
text: qsTr("Click me")
anchors.centerIn: parent
onClicked: page.mySignal()
}
}
anchors.fill: parent
Component.onCompleted: initialItem.mySignal.connect(onMySignal)
function onMySignal(){
console.info("onMySignal")
}
}
}
Могу я ответить на вопрос, сэр? как бы вы это сделали, если бы объект пришел с stackview.push()
?? Теперь я понимаю синтаксис, но как я могу узнать, что компонент push завершен, чтобы потом я мог его подключить?
для будущих читателей. Если к сигналу прикреплены данные, функция будет записана следующим образом:
function onMySignal(data){ console.info("onMySignal " + data) }