从两个不同的qml文件中绑定两个元素

时间:2017-06-15 17:34:22

标签: qt qml pyqt5

我正在尝试绑定两个拨号元素,这样如果更改了dial1值,则相同的值将反映在另一个qml中的dial2中。

QML对我来说是新的,我不太了解这方面的内容。但是我想在这上面使用纯QML,而不是C,C ++。

true

其次,我希望对同一场景进行双向绑定。

1 个答案:

答案 0 :(得分:0)

在某个地方,您将实例化这两个文件。我们假设它是TabView。您可以通过向将保存共享值的TabView添加属性来在两个文件之间建立连接。 拥有sharedValue的专家是,实例化两个文件的时间可能不同,因此如果您销毁file1的实例并创建file2的实例,那么几分钟之后,你仍然可以获得价值。

TabView {
    property int sharedValue
    File1 {
        id: file1
    }
    File2 {
        id: file2
    }
}

然后阅读this on bidirectional bindings并将拨号的两个公开值绑定到共享值。您也可以省略属性sharedValue并直接在两个公开值之间安装双向绑定。

当然,有必要公开表盘的价值,所以你的文件需要看

Tab {
    property alias dialValue: dial.value // now you can access the dial's value via this new property.
    CustomDial {
        id: dial
    }
}

只要你不改变绑定中的值,我建议使用两个Binding - Object来安装双向绑定。