Liaisons dupliquées
Cette catégorie d'avertissement est orthographiée [duplicate-property-binding] par qmllint.
Duplication d'un intercepteur sur une propriété
Qu'est-ce qui s'est passé ?
Une propriété a plusieurs intercepteurs.
Pourquoi est-ce mauvais ?
La définition de plusieurs intercepteurs sur la même propriété n'est pas supportée par le moteur QML.
Exemple
Utilisons Behavior comme intercepteur deux fois 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 intercepteurs sauf un : Behavior:
import QtQuick Rectangle { Behavior on width { NumberAnimation { duration: 2000 } } }
Voir aussi Types de modificateurs de propriétés.
Source de valeur dupliquée sur une propriété
Qu'est-ce qui s'est passé ?
Une propriété a plusieurs sources de valeur.
Pourquoi est-ce mauvais ?
Les sources de valeur ont un comportement inattendu lorsqu'elles sont combinées. Voir l'exemple ci-dessous.
Exemple
Utilisons deux fois NumberAnimation comme source de valeur pour 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 verrez que les deux NumberAnimation s'entrelacent, ce qui n'est probablement pas l'effet escompté. Pour corriger cet avertissement, supprimez tous les NumberAnimation sauf un :
import QtQuick Rectangle { NumberAnimation on x { to: 50; duration: 1000 } }
Cannot combine value source and binding
Qu'est-ce qui s'est passé ?
Une propriété a une source de valeur et une liaison sur la même propriété.
Pourquoi est-ce mauvais ?
La liaison mettra à jour la valeur de la propriété avant que la source de valeur ne commence à mettre à jour cette propriété. Cela peut conduire à un comportement inattendu et est également plus difficile à lire.
Exemple
Utilisons NumberAnimation comme source de valeur sur la 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 le site NumberAnimation passe 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.