QtQuick 2向元素传递函数
我有一个QML元素“按钮”,里面有一个MouseArea元素。 我想做的是向该项发送函数,然后将其传递给MouseArea: 例如:QtQuick 2向元素传递函数,qt,qml,qt-quick,qtquick2,Qt,Qml,Qt Quick,Qtquick2,我有一个QML元素“按钮”,里面有一个MouseArea元素。 我想做的是向该项发送函数,然后将其传递给MouseArea: 例如: Button{ id: smth ... ... onClicked: console.log("Someone Clicked Me!") } 我的元素可以是这样的: Rectangle{ property var onClicked ... MouseArea{ onClicked :
Button{
id: smth
...
...
onClicked: console.log("Someone Clicked Me!")
}
我的元素可以是这样的:
Rectangle{
property var onClicked
...
MouseArea{
onClicked : parent.onClicked
}
}
我发现我可以像在native js中一样传递函数而不使用括号,但我认为有一种方法可以像MouseArea元素那样实现它。在QML中处理这种情况的通常方法是让按钮发出一个信号,然后由按钮的用户处理 Button.qml:
Rectangle {
id: root
signal clicked
MouseArea {
anchors.fill: parent
onClicked: root.clicked();
}
}
用法:
Button {
onClicked: console.log("Button was clicked!");
}