按qml按钮但没有响应

时间:2014-11-03 05:01:10

标签: qt qml

我使用下面的代码设置按钮

Button {
    x: 141
    y: 312
    width: 98
    height: 22
    text: qsTr("Hello World")
    anchors.verticalCenterOffset: 116
    anchors.horizontalCenterOffset: -59
    anchors.centerIn: parent

    MouseArea
            {
                anchors.rightMargin: 126
                anchors.bottomMargin: -172
                anchors.leftMargin: -126
                anchors.topMargin: 172
                preventStealing: true
                anchors.fill: parent
                onPressed: {
                    console.debug("clicked!")

                }


            }
}

按下按钮' hello world'它应该显示在控制台上点击。

但是当我点击按钮

时,似乎没有任何反应

enter image description here

您的评论欢迎

1 个答案:

答案 0 :(得分:2)

首先QML Button拥有自己的信号clicked,因此您不需要MouseArea

其次,如果您想使用MouseArea,您还可以尝试onClicked信号,并按照以下方式执行此操作:

Button {
    id: button1
    x: 8
    y: 19
    text: qsTr("Button")
    //        onClicked:  {
    //            console.debug("clicked!")
    //        }
    MouseArea{
        preventStealing: true
        anchors.fill: parent
        onPressed: {
            console.debug("clicked!")
        }
        onDoubleClicked:
        {
            console.debug("double clicked!")
        }
    }
}

http://qt-project.org/doc/qt-5/qml-qtquick-controls-button.html#clicked-signal

http://qt-project.org/doc/qt-5/qml-qtquick-mousearea.html#clicked-signal