我检查了文档中不同的mouseArea事件,当mouseArea被按下时,没有机会执行js函数。
因为我没有找到一个直接的方法,所以我选择了这个解决方案。我设置了一个计时器来更新我的面板,以防我的鼠标区域的添加bool属性isPressed
被设置为true。
鼠标面积:
MouseArea {
id: myMouseArea
//pos and size removed. Not relevant
property bool isPressed: false
onPressed: {
isPressed = true;
}
onReleased: {
isPressed = false;
}
}
计时器:
Timer {
id: updatePanelTimer
interval: 100
repeat: true
running: true
triggeredOnStart: true
onTriggered: updatePanel()
}
功能:
function updatePanel() {
if (myMouseArea.isPressed) {
//run code
}
}
是否有更直接的方法来执行代码,而mouseArea被按下?我想知道是否有一种方法可以在mouseArea本身内做到这一点,主要是如果它可能不需要计时器。
如果您想只在鼠标处于按下状态时运行代码:
MouseArea {
id: myMouseArea
//pos and size removed. Not relevant
property bool isPressed: false
onPressed: {
updatePanelTimer.start()
}
onReleased: {
updatePanelTimer.stop()
}
}