如何在不使用鼠标或键盘事件的情况下更改图像状态(或执行某些动画)

时间:2018-03-12 13:30:25

标签: qt qml embedded-linux

我是qt / qml应用程序世界的新手,我希望在不使用鼠标或键盘事件的情况下在qml中执行一些动画活动,例如我通过串口从外部设备获取输入数据并显示数据LCD使用图像,但我需要更改图像上的动作,如在数据更改时旋转或翻转图像,任何人都可以帮我怎么做, 请参阅以下链接,通过单击鼠标可以翻转图像, http://doc.qt.io/archives/qt-4.8/qml-flipable.html 用于旋转图像链接是: https://kunalmaemo.blogspot.in/2011/03/flipping-rotating-view-animation-in-qml.html

BR SGN

1 个答案:

答案 0 :(得分:1)

欢迎来到SO。首先请阅读How do I ask a good question?。将来你应该避免质疑“为什么这段代码不起作用?”或“怎么做......”。学习,研究,尝试编写好的代码,如果遇到麻烦,请回过头来。

其次,你应该从QML book开始。这应该为您提供有关QML的所有必要知识。

关于您的问题,请尝试以下方法:

import QtQuick 2.9
import QtQuick.Window 2.2

Window {
    id: window
    title: "Test"
    visible: true
    width: 400
    height: 400

    Image {
        id: img
        source: "http://placeimg.com/200/200/nature"
        width: 200
        height: 200
        anchors.centerIn: parent
        rotation: 0
        onStatusChanged: {
            if(img.status == Image.Ready) {
                console.log("image loaded")
                timer.running = true;
            }
        }
    }
    PropertyAnimation {
        id: anim
        target: img
        property: "rotation"
        from: 0
        to: 360
        duration: 2000
        easing.type: Easing.OutBounce
    }
    Timer {
        id: timer
        interval: 3000
        onTriggered: {
            console.log("timer triggered")
            anim.running = true;
        }
    }
}

图像加载后,更改后的状态启动计时器,计时器又启动动画,动画为rotation属性。