【发布时间】:2014-04-22 12:35:08
【问题描述】:
我正在尝试在可重用的 QML 组件中定义具有默认值的属性。到目前为止,这是我的代码:
property alias value: progressBar.value
property bool error: false
property ProgressBarStyle errorStyle: ProgressBarStyle {
background: Rectangle {
radius: 2
color: "lightgray"
border.color: "gray"
border.width: 1
implicitWidth: 200
implicitHeight: 24
}
progress: Rectangle {
color: "orangered"
border.color: "red"
}
}
Layout.fillWidth: true
ProgressBar {
id: progressBar
Layout.fillWidth: true
minimumValue: 0.0
maximumValue: 100.0
style: errorStyle
}
所以这个想法是errorStyle被构造并设置为progressBar的style。我知道errorStyle 可以工作,因为如果我直接在progressBar 上设置它就可以工作。据我所知,当我运行我的程序时,问题是errorStyle 是null。
更新:
也许更好的方式来说明这个问题是:“我如何绕过'PropertyChanges 不支持创建特定于状态的对象。'如果我直接在 PropertyChanges 数组中创建样式会收到错误消息?
更新 2:
我已经基本上放弃了这种方法,并决定尝试使用样式来代替。这导致了另一个问题:Cannot create certain QML types in a singleton
【问题讨论】: