Liaisons en double
Cette catégorie d'avertissement est orthographiée « [duplicate-property-binding] » par qmllint.
Intercepteur en double sur une propriété
Que s'est-il passé ?
Une propriété possède plusieurs intercepteurs.
Pourquoi est-ce un problème ?
La définition de plusieurs intercepteurs sur une même propriété n'est pas prise en charge par le moteur QML.
Exemple
Utilisons deux fois l'intercepteur « Behavior » sur la même propriété :
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 }
}
}Pour corriger cet avertissement, supprimez tous les « Behavior » sauf un :
import QtQuick
Rectangle {
Behavior on width {
NumberAnimation { duration: 2000 }
}
}Voir aussi Types de modificateurs de propriété.
Source de valeur en double sur une propriété
Que s'est-il passé ?
Une propriété possède plusieurs sources de valeur.
Pourquoi est-ce problématique ?
Les sources de valeur présenteront un comportement inattendu lorsqu’elles seront combinées. Voir l’exemple ci-dessous.
Exemple
Utilisons deux fois la source de valeur « NumberAnimation » sur la même propriété :
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)
}Si vous vérifiez la sortie de ce programme, vous constaterez que les deux NumberAnimation s’entremêlent, ce qui n’est probablement pas l’effet escompté. Pour résoudre ce problème, supprimez toutes les NumberAnimation sauf une :
import QtQuick
Rectangle {
NumberAnimation on x { to: 50; duration: 1000 }
}Impossible de combiner une source de valeur et une liaison
Que s’est-il passé ?
Une propriété possède à la fois une source de valeur et une liaison sur la même propriété.
Pourquoi est-ce problématique ?
La liaison mettra à jour la valeur de la propriété avant que la source de valeur ne commence à la mettre à jour. Cela peut entraîner un comportement inattendu et rend le code plus difficile à lire.
Exemple
Utilisons NumberAnimation comme source de valeur pour cette même propriété :
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)
}Si vous vérifiez la sortie de ce programme, vous verrez que l'NumberAnimation s'anime de 55 à 50, ce qui serait plus facile à lire avec le code suivant :
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.