无法在QML / C ++中使用绑定对象初始化UI

时间:2017-05-11 09:46:01

标签: c++ qt qml

我将QtQuick.Controls 2.x min.value放入组件中。我已将QObject绑定到我的模型对象,该对象是onLoaded:{...}的子类,并且已经暴露给QML上下文。

我可以使用以下名称从QML访问它:" settings"。该控件应该读取加载器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 ... } } } 的任何更改。 但控件总是设置设置'属性首先,所以我不能用设置的属性初始化它。

loader.item.min.value

我想为slider.first.value(即slider.first.value)分配settings.min的值,但在此分配发生之前,settings.min更改为settings.min。用户设置新值后,我希望将slider.first.value设置为tRESTClient --> Basic settings --> Query parameters --> name = "query" & value = "{last-modified[>=(2017-04-19 13:02:15)]}" '

有没有人知道如何正确实现这个?

1 个答案:

答案 0 :(得分:2)

您可以使用Binding - 对象的when - 属性来停用绑定,直到您设置了初始值。将其初始设置为false,并将其更改为true - 处理程序

第一行中的onLoaded

同样非常有趣的是delayed - 属性。我不能保证这会起作用,但它可能是一个优雅的解决方案。我还没试过。