Doppelte Bindungen
Diese Warnkategorie wird von qmllint als „ [duplicate-property-binding] “ bezeichnet.
Doppelte Interceptor-Definition für eine Eigenschaft
Was ist passiert?
Eine Eigenschaft verfügt über mehrere Interceptoren.
Warum ist das ein Problem?
Das Festlegen mehrerer Interceptoren für dieselbe Eigenschaft wird von der QML-Engine nicht unterstützt.
Beispiel
Verwenden wir „ Behavior “ zweimal als Interceptor für dieselbe Eigenschaft:
import QtQuick
Rectangle {
Behavior on width {
NumberAnimation { duration: 1000 }
}
Behavior on width { // not ok: Duplicate interceptor on property "width" [duplicate-property-binding]
NumberAnimation { duration: 2000 }
}
}Um diese Warnung zu beheben, entfernen Sie alle „ Behavior “ bis auf einen:
import QtQuick
Rectangle {
Behavior on width {
NumberAnimation { duration: 2000 }
}
}Siehe auch „Eigenschaftsmodifikator-Typen“.
Doppelte Wertquelle für eine Eigenschaft
Was ist passiert?
Eine Eigenschaft hat mehrere Wertquellen.
Warum ist das problematisch?
Die Wertquellen zeigen bei Kombination ein unerwartetes Verhalten. Siehe das folgende Beispiel.
Beispiel
Verwenden wir „ NumberAnimation “ zweimal als Wertquelle für dieselbe Eigenschaft:
import QtQuick
Rectangle {
NumberAnimation on x { to: 50; duration: 1000 }
NumberAnimation on x { to: 10; duration: 100 } // not ok: Duplicate value source on property "x" [duplicate-property-binding]
onXChanged: console.log(x)
}Wenn Sie sich die Ausgabe dieses Programms ansehen, werden Sie feststellen, dass sich die beiden „ NumberAnimation “ gegenseitig überlagern, was wahrscheinlich nicht der beabsichtigte Effekt ist. Um diese Warnung zu beheben, entfernen Sie alle bis auf eine „ NumberAnimation “:
import QtQuick
Rectangle {
NumberAnimation on x { to: 50; duration: 1000 }
}Wertquelle und Bindung können nicht kombiniert werden
Was ist passiert?
Eine Eigenschaft verfügt über eine Wertquelle und eine Bindung für dieselbe Eigenschaft.
Warum ist das problematisch?
Die Bindung aktualisiert den Eigenschaftswert, bevor die Wertquelle mit der Aktualisierung dieser Eigenschaft beginnt. Dies kann zu unerwartetem Verhalten führen und erschwert zudem die Lesbarkeit.
Beispiel
Verwenden wir „ NumberAnimation “ als Wertquelle für dieselbe Eigenschaft:
import QtQuick
Rectangle {
NumberAnimation on x { to: 50; duration: 1000 } // not ok: Cannot combine value source and binding on property "x" [duplicate-property-binding]
x: 55
onXChanged: console.log(x)
}Wenn Sie sich die Ausgabe dieses Programms ansehen, werden Sie feststellen, dass „ NumberAnimation “ von 55 auf 50 animiert wird, was mit dem folgenden Code leichter zu lesen wäre:
import QtQuick
Rectangle {
NumberAnimation on x { from: 55; to: 50; duration: 1000 } // ok: intentions are clearer now!
}© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.