希望我不会错过这里明显的东西。
我正在编写一个应用,并使用Image
和MouseArea
进行了放大按钮。我需要按钮重复一个方法调用,比如说,每按一次按住鼠标按钮放大。如何重复这一点并不是完全明显的。现在我有:
Rectangle {
id:zoomInBtn
Image {
id: zoomInImg
anchors.centerIn: parent
fillMode: Image.PreserveAspectFit
source: zoomIn.pressed ? ":/img/zoom_in_sel" : ":/img/zoom_in_unsel"
}
MouseArea {
id: zoomIn
anchors.fill: parent
onPressed: { cameraController.zoomIn(0.5); }
}
我也试过
onPressAndHold: { cameraController.zoomIn(0.5); }
基本相同,虽然延迟时间很短,但我需要在按住鼠标按钮时每秒重复此操作。
答案 0 :(得分:3)
要执行您需要的任务,您必须使用Timer
。 containsMouse
处于活动状态时,计时器必须保持活动状态。如果计时器被激活,您还必须立即启用triggeredOnStart
。
Rectangle {
id:zoomInBtn
Image {
id: zoomInImg
anchors.centerIn: parent
fillMode: Image.PreserveAspectFit
source: zoomIn.pressed ? ":/img/zoom_in_sel" : ":/img/zoom_in_unsel"
}
MouseArea {
id: zoomIn
anchors.fill: parent
}
Timer {
id: timer
interval: 1000
repeat: true
triggeredOnStart: true
running: zoomIn.containsMouse
onTriggered: cameraController.zoomIn(0.5) //task
}
}
}