关于子控件发布的一个信号在子控件内部以及在父控件中都存在响应时,会两者都进行响应,且子控件先行响应,而后父控件响应
例子如下
Son.qml
import QtQuick 2.0
Item {
signal sigClick()
Rectangle{
id: rec
anchors.fill: parent
color: "red"
}
MouseArea{
anchors.fill:parent
onClicked: {
sigClick()
}
}
onSigClick: {
console.log("son here")
if(rec.color == "#ff0000")
rec.color = "blue"
else rec.color = "red"
}
}
main.qml
import QtQuick 2.12
import QtQuick.Window 2.12
Window {
visible: true
width: 640
height: 480
title: qsTr("Hello World")
Son{
width: 100
height: 100
onSigClick:{
console.log("father here")
}
}
}
可见 在子控件内部以及父控件内部都有onSigClick的处理
打印输出如下:
qml: son here
qml: father here
由此可看出其响应的顺序