QtQuick.Controls 2.x
のRangeSlider
をコンポーネントに入れました。 min.value
をQObject
のサブクラスであり、QMLコンテキストにさらされているモデルオブジェクトにバインドしました。QML/C++でバインドされたオブジェクトを持つUIを初期化できません
「設定」という名前でQMLからアクセスできます。コントロールは、LoaderのonLoaded:{...}
の設定を読み込んで初期化することになっています。私はBinding
-Loader
の外にあるオブジェクトにmin.value
の変更を書き戻しました。 しかし、コントロールは常に設定のプロパティを設定するので、設定のプロパティで初期化することはできません。
Loader {
id: loader
sourceComponent: ctrl
onLoaded: {
loader.item.min = settings.min
}
}
Binding {
target: settings
property: "min"
value: loader.item.min.value
}
Component {
id: ctrl
Item {
property alias min: slider.first
RangeSlider {
id: slider
...
}
}
}
Iはsettings.minのloader.item.min.value
(即ちslider.first.value
)値を割り当てるが、この割り当てが起こる前に、settings.minはslider.first.value
に変更されます。ユーザーが新しい値を設定した後、settings.min
をslider.first.value
に設定します。
これを正しく実装する方法を知っている人はいますか?
私はLoaderのsetSourceメソッドを使用しようとします: オブジェクトsetSource(url source、object properties) – Jas6033