首页 > 解决方案 > 何时评估分配给属性的 qml 谓词?

问题描述

编写如下代码时:

Item{
    id: item
    enabled:  backend.property == "X"
}

谓词何时被评估。一次?还是每次财产变化?

此外,在状态更改中分配属性时它如何应用:是在状态更改时评估一次还是在每次发出属性更改信号时进行评估?

    State {
        name: "One"
        when: step == 2

        PropertyChanges {
            target: item
            enabled:  backend.property == "X"
        }

标签: qtqmlqt-quick

解决方案


每当谓词中发生的任何属性发生更改(通过Q_PROPERTY(... NOTIFY signalX))时,都会评估分配。在您的示例中,这可以是backendproperty

您的PropertyChanges示例中的 将执行相同的操作,每次任何属性更改时都会对其进行评估。如果您分配true给该explicit属性,它将是一次性评估,即状态更改的那一刻。


推荐阅读