An einer Stelle werden Sie beide Dateien instanziieren. Nehmen wir an, es ist ein TabView
. Dies ist der Punkt, an dem Sie die Verbindung zwischen den beiden Dateien herstellen, indem Sie der TabView
eine Eigenschaft hinzufügen, die den gemeinsamen Wert enthält.
Der Vorteil der sharedValue
ist, dass die Zeit, in der die beiden Dateien instanziiert werden, unterschiedlich sein kann. Wenn Sie also die Instanz file1
zerstören und die Instanz file2
ein paar Minuten später erstellen, können Sie den Wert noch haben .
TabView {
property int sharedValue
File1 {
id: file1
}
File2 {
id: file2
}
}
Dann lesen Sie this on bidirectional bindings und binden die beiden freiliegenden Werte der Zifferblätter auf den gemeinsam genutzten Wert. Sie können alternativ die Eigenschaft sharedValue
weglassen und die bidirektionale Bindung zwischen den beiden exponierten Werten direkt installieren.
Was notwendig ist, ist natürlich, dass Sie den Wert der Wahl aussetzen, so dass Ihre Dateien würden
Tab {
property alias dialValue: dial.value // now you can access the dial's value via this new property.
CustomDial {
id: dial
}
}
So lange suchen müssen, wie Sie die Werte in der Bindung nicht verändern, ich empfehlen, zwei Binding
-Objekt zu verwenden, um die bidirektionale Bindung zu installieren.
Es gibt keine solchen Konzepte - verschiedene Dateien. Die QML-Anwendung ist eine Baumstruktur von QML-Objekten. Wenn Sie also eine qml-Datei haben, die dieses Objekt nicht in der Baumstruktur bedeutet. Es ist nur ein Prototyp, also sollten Sie zuerst eine Instanz dieses Objekts erstellen. Zeigen Sie uns, wie Ihre 2 Objekte und so die Beziehung zwischen ihnen ist. – folibis
Ich weiß nicht genau, was Sie zu erreichen versuchen, aber Sie könnten beide Komponenten in der gleichen Datei (sagen wir main.qml) erstellen. Dann könnten Sie ihre Eigenschaften an dieselbe Eigenschaft binden, die in main.qml erstellt wurde. Alle Änderungen werden sich auf beide Komponenten auswirken. –
@folibis Ich habe '// CustomDial.qml' und dann verwende ich diese Komponente' CustomDial {} 'als ** Objekt an zwei Stellen ** der verschiedenen TAB-Seiten. Ich habe jede separate qml-Datei für jeden Tab. Jetzt möchte ich dieses 'CustomDial Object' verbinden, das sich in zwei verschiedenen Tabs befindet, so dass, wenn man sich ändert, das andere geändert wird. – ryuk