未指定“on”的QML行为

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了未指定“on”的QML行为相关的知识,希望对你有一定的参考价值。

根据Animation documentation在“默认动画为行为”一节中,他们说

有几种方法可以将行为动画分配给属性。

其中之一就是我们应该能够在没有Behaviour的情况下使用on property,但是我没有成功地使用它。

这是我的示例代码。我有一个彩色圆圈,改变颜色应该触发ColorAnimation,但事实并非如此

import QtQuick 2.5
import QtQuick.Window 2.2

Window {
    visible: true
    width: 640
    height: 480
    title: qsTr("Hello World")

    Rectangle {
        width: 75; height: 75; radius: width
        id: ball
        color: "salmon"

        Behavior {
            ColorAnimation { target: ball; duration: 100 }
        }
    }

    Component.onCompleted: timer.start()

    Timer{
        id: timer
        onTriggered: {ball.color = "blue" }
        interval: 1000
    }
}

如果我添加on color,它的工作原理。我也尝试将property: "color"添加到ColorAnimation定义中,但没有任何反应。

答案

在浏览文档之后,我认为还没有其他方法可以为QML中的Behaviors指定属性,即使动画文档建议如此。

行为是属性修饰符类型更具体的属性值写入拦截器。目前行为是唯一的,请参阅:

http://doc.qt.io/qt-5/qtqml-cppintegration-definetypes.html

以上是关于未指定“on”的QML行为的主要内容,如果未能解决你的问题,请参考以下文章

XSLT3 未命名的 xsl:mode on-no-match 行为是不是应该应用于没有模式匹配但模式在应用模板上指定的元素?

QML中未调用函数[关闭]

QML ListView Loader 不需要的预定义行为

QML 中的类似菜单栏的行为

QML Canvas:渲染中的不同行为

如何在属性更改 QML 上实现行为动画