【发布时间】:2016-01-23 15:08:58
【问题描述】:
有一个问题的自包含示例:
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,滑块也不会真正假定正确的初始值。
【问题讨论】:
标签: qt binding qml qtquick2 qtquickcontrols