問題の自己完結型の例があります。
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
最小値を設定する前にスライダーを動かしても、スライダーが正しい初期値になることはありません。