繁体   English   中英

Qt Quick QML MouseArea自动重复印刷

[英]Qt Quick QML MouseArea autorepeat on press

希望我不会在这里遗漏一些明显的东西。

我正在编写一个应用程序,并使用ImageMouseArea进行了放大按钮。 我需要按钮来重复一个方法调用,例如,在按住鼠标按钮的同时每秒放大一次。 如何重复此操作并不完全清楚。 现在我有:

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM