在QML中,可以使用Bindings来动态地将一个属性绑定到另一个属性。您可以使用Binding来根据label的text来控制color的颜色。以下是一个示例:

import QtQuick 2.0
import QtQuick.Controls 2.0

Rectangle {
    width: 200
    height: 200
    color: label.text === "red" ? "red" : "green"

    Label {
        id: label
        anchors.centerIn: parent
        text: "red"
    }

    MouseArea {
        anchors.fill: parent
        onClicked: {
            label.text = label.text === "red" ? "green" : "red"
        }
    }
}

在上面的示例中,我们创建了一个Rectangle,其颜色取决于Label的text属性。当label的text属性为"red"时,Rectangle的颜色为红色,否则为绿色。我们还添加了一个MouseArea,当点击Rectangle时,会切换label的text属性的值。

请注意,为了使颜色绑定生效,需要确保label的text属性发生更改时会触发重新计算color属性。您可以通过使用Binding或在label的text属性中添加一个onTextChanged信号处理程序来实现这一点

qml Rectangle中根据label的text来控制color的颜色有时无效

原文地址: https://www.cveoy.top/t/topic/iaep 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录