是否在TextField上获得视觉反馈(颜色过渡)?

时间:2019-03-03 21:28:51

标签: qml transition

我有一个应用程序,该应用程序的文本字段(在GridLayout中)具有大量数字,并且希望在视觉上突出显示已更改的字段(例如颜色从原始更改为红色,然后又变为红色,所以类似)。

我是动画/转场等游戏的新手,所以我想问一问正确的方法是什么。

我正在看Qt Creator中的教程,但是它们已经将过渡添加到了QML代码中的元素上,而我想通过其id获取元素并说,现在运行高亮过渡,而无需在其代码中添加任何内容。有可能吗?

1 个答案:

答案 0 :(得分:0)

您必须实现自己的控件,该控件派生自data-number,并在所需的所有动画逻辑内添加。 例如:

MyItem.qml

Text

用法:

import QtQuick 2.12

Text {
    id: txt
    property bool hightlight: false
    property color textColor: color
    property color hightlightColor: "red"
    onHightlightChanged: {
        if(hightlight)
            anim.running = true;
    }

    SequentialAnimation
    {
        id: anim
        running: false
        PropertyAnimation {
            target: txt
            property: "color"
            to: hightlightColor
            duration: 500
        }
        PropertyAnimation {
            target: txt
            property: "color"
            to: textColor
            duration: 500
        }
        ScriptAction {
            script: txt.hightlight = false;
        }
    }
}