qml Rectangle中根据label的text来控制color的颜色有时无效
在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信号处理程序来实现这一点
原文地址: https://www.cveoy.top/t/topic/iaep 著作权归作者所有。请勿转载和采集!