无法在QML自定义项中发出信号

时间:2015-05-07 17:33:00

标签: qt qml signals-slots

我使用信号clicked创建了自己的项目,其中包含MouseArea。单击MouseArea时,我想发出信号clicked。但没有任何作用。 这是我的.qml代码:

import QtQuick 2.4

Item {

    id: baseButton

    property alias text: txt.text
    width: txt.width
    height: txt.height

    signal clicked

    onClicked : console.log("Clicked!")

    Text {
        id: txt
        color: "white"
        font.pointSize: 8
        anchors.centerIn: parent
    }

    MouseArea {
        id: mousearea
        anchors.fill: parent
        hoverEnabled: true

        onEntered: {
            txt.color = "yellow"
            txt.font.pointSize = 15
        }

        onExited: {
            txt.color = "white"
            txt.font.pointSize = 8
        }

        onClicked:  baseButton.clicked
    }
}

我将非常感谢你的帮助!

1 个答案:

答案 0 :(得分:3)

函数(信号是)是JS中的第一类对象,因此在没有括号的情况下引用它们不是错误。但是你需要它们来执行功能(即发出信号)。

所以只需改变这一行:

onClicked:  baseButton.clicked()