【发布时间】:2017-05-11 18:32:47
【问题描述】:
我将来自QtQuick.Controls 2.x 的RangeSlider 放入组件中。我已将其min.value 绑定到我的模型对象,它是QObject 的子类,并且已暴露于QML 上下文。
我可以使用名称从 QML 访问它:“设置”。该控件应该读取加载程序的onLoaded:{...} 中的设置以进行自身初始化。我在Loader 之外有一个Binding-Object 来写回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
...
}
}
}
我想将 settings.min 的值分配给loader.item.min.value(即slider.first.value),但在此分配发生之前,settings.min 更改为slider.first.value。用户设置新值后,我希望将settings.min 设置为slider.first.value。
有人知道如何正确实现吗?
【问题讨论】:
-
我会尝试使用 Loader 的 setSource 方法:object setSource(url source, object properties)