有一个自包含的问题示例:
Rectangle {
id: rect
width: 200
height: 200
property real v : 50
onVChanged: console.log(v)
Button {
onClicked: scomp.createObject(rect)
}
Component {
id: scomp
Rectangle {
id: sli
anchors.fill: parent
Column {
Slider {
width: 200
minimumValue: 10
maximumValue: 100
value: rect.v
onValueChanged: rect.v = value
}
Button {
onClicked: sli.destroy()
}
}
}
}
}
基本上,每次创建滑块组件以进行修改v
时,都会将其设置为滑块的最小值。请注意,滑块仍可正常工作以修改该值,并v
在滑块关闭后保持其正确值,但再次打开时,该值再次损坏。
为什么会发生这种情况,如何预防?似乎出于某种可解释的原因,滑块的value
属性暂时假定了它的minimumValue
值,但这看起来不像是适当的行为。也许是一个错误?滑块永远不会真正假定正确的初始值,即使value: rect.v
在设置最小值之前移动。