无法在 QML 自定义项中发出信号
Can't emit signal in QML custom Item
我用信号 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
}
}
非常感谢你的帮助!
函数(即信号)是 JS 中的第一个 class 对象,因此不带括号引用它们并不是错误。但是您需要它们才能执行功能(即发出信号)。
所以只需更改此行:
onClicked: baseButton.clicked()
我用信号 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
}
}
非常感谢你的帮助!
函数(即信号)是 JS 中的第一个 class 对象,因此不带括号引用它们并不是错误。但是您需要它们才能执行功能(即发出信号)。
所以只需更改此行:
onClicked: baseButton.clicked()