【问题标题】:QtQuick 2 Pass function to elementsQtQuick 2 将函数传递给元素
【发布时间】:2014-03-24 05:13:51
【问题描述】:

我有一个 QML 元素“按钮”,其中有一个 MouseArea 元素。 我想要做的是向项目发送一个函数,然后将其传递给 MouseArea

例子:

Button{
    id: smth
    ... 
    ...
   onClicked: console.log("Someone Clicked Me!")

}

我的元素可能是这样的:

Rectangle{
    property var onClicked
    ...
    MouseArea{
       onClicked : parent.onClicked
    }
}

我发现我可以像在原生 js 中那样不带括号地传递函数,但我认为有一种方法可以像 MouseArea 元素那样实现它。

【问题讨论】:

    标签: qt qml qt-quick qtquick2


    【解决方案1】:

    在 QML 中处理这种情况的常用方法是让 Button发出信号,然后由 Button 的用户处理。

    Button.qml:

    Rectangle {
        id: root
        signal clicked
    
        MouseArea {
            anchors.fill: parent
            onClicked: root.clicked();
        }
    }
    

    用法:

    Button {
        onClicked: console.log("Button was clicked!");
    }
    

    【讨论】:

      猜你喜欢
      • 2011-07-15
      • 1970-01-01
      • 2020-02-21
      • 1970-01-01
      • 1970-01-01
      • 2017-03-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多