[英]Qt Quick QML MouseArea autorepeat on press
希望我不会在这里遗漏一些明显的东西。
我正在编写一个应用程序,并使用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); }
基本上一样,尽管延迟不大,但是在按住鼠标按钮的同时,我需要每秒重复一次此操作。
要执行任务,您必须使用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
}
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.