一.接收来自加载的qml发出的信号
使用Connections元素可以接收到任何发送自加载组件的信号。
main.qml
import QtQuick 2.12
import QtQuick.Window 2.12
Window {
visible: true
property bool isFirst : false;
width: 200
height: 200
Loader {
id: pageLoader
source: "Page1.qml"
}
Connections {
target: pageLoader.item
onMessage: console.log(msg);
}
}
page1.qml
import QtQuick 2.12
Rectangle {
id: myItem
signal message(string msg)
width: 100; height: 100
MouseArea {
anchors.fill: parent
onClicked: myItem.message("clicked!");
}
}
加载与被加载组件中都有相同的事件,那么需要设置Loader的属性focus为true,且设置被加载组件 focus: true才能让事件不被传播到被加载组件。