我有一个 QML元素" Button" ,里面有 MouseArea元素。 我想要做的是向项目发送一个函数,然后将其传递给MouseArea :
示例:
Button{
id: smth
...
...
onClicked: console.log("Someone Clicked Me!")
}
我的元素可能是这样的:
Rectangle{
property var onClicked
...
MouseArea{
onClicked : parent.onClicked
}
}
我发现我可以像没有括号的原生js一样传递函数,但我认为有一种方法像MouseArea元素那样实现它。
答案 0 :(得分:2)
在QML中处理这种情况的常用方法是让Button 发出信号,然后由Button的用户处理。
Button.qml:
Rectangle {
id: root
signal clicked
MouseArea {
anchors.fill: parent
onClicked: root.clicked();
}
}
用法:
Button {
onClicked: console.log("Button was clicked!");
}