Propriété manquante
Cette catégorie d'avertissement est orthographiée [missing-property] par qmllint.
Impossible d'assigner à une propriété par défaut inexistante
Qu'est-ce qui s'est passé ?
Vous avez assigné un objet à une propriété par défaut inexistante.
Pourquoi est-ce mauvais ?
Le moteur QML ne peut pas assigner cet objet au moment de l'exécution.
Exemple
Pour corriger cet avertissement, spécifiez la propriété à laquelle vous voulez vous lier ou, si vous êtes l'auteur du type, marquez une propriété comme étant par défaut :
import QtQuick Item { component MyType: QtObject { property Item myItem; } MyType { myItem: Item {} } component AlternativeMyType: QtObject { default property Item myItem; } AlternativeMyType { Item {} // bound to myItem via default property } }
Property does not exist
Qu'est-ce qui s'est passé ?
Vous avez assigné une expression à une propriété inexistante.
Pourquoi est-ce mauvais ?
Le moteur QML ne peut pas assigner cette expression au moment de l'exécution.
Exemple
Pour corriger cet avertissement, supprimez la liaison ou corrigez une éventuelle faute de frappe :
Member not found on type
Qu'est-ce qui s'est passé ?
Vous avez accédé à un membre dans une expression de membre de champ qui ne peut pas être trouvée par l'outil QML. Une expression de membre de champ est une expression de la forme someId.someProperty.
Le membre peut ne pas exister du tout, par exemple si vous avez fait une faute de frappe. Il peut également exister au moment de l'exécution (parce qu'il existe sur un sous-type spécifique qui est toujours présent), mais pas sur le type déclaré statiquement.
Pourquoi est-ce mauvais ?
L'outil QML ne peut pas trouver ce membre, ce qui signifie que des fonctionnalités telles que la définition directe et l'autocomplétion ne fonctionneront pas. Au moment de l'exécution, il peut y avoir une erreur ou vous pouvez obtenir un résultat incorrect si le membre n'existe vraiment pas. Il n'y aura pas d'erreur si le membre existe toujours au moment de l'exécution, mais dans ce cas, il peut y avoir un coût de performance dû aux optimisations manquées.
Exemple
La propriété n'existe pas réellement
Pour corriger cet avertissement, supprimez la liaison ou corrigez une éventuelle faute de frappe :
La propriété existe, mais le type n'est pas assez précis
import QtQuick import QtQuick.Controls.Basic Item { component Message : Item { required property string sender required property string text } ListView { id: messageView delegate: Message {} } Button { text: "Reply to %1".arg(messageView.currentItem.sender) // not ok } }
Pour corriger cet avertissement, faites passer l'objet à partir duquel vous lisez vers le type le plus spécifique :
import QtQuick import QtQuick.Controls.Basic Item { component Message : Item { required property string sender required property string text } ListView { id: messageView delegate: Message {} } Button { text: "Reply to %1".arg((messageView.currentItem as Message).sender) // now ok } }
Dans l'exemple, le type déclaré de la propriété currentItem de messageView est Item, qui n'a pas de propriété sender: sender n'est défini que dans Message. Ici, nous savons cependant que currentItem contient toujours un Message, nous pouvons donc convertir currentItem en Message à l'aide d'une assertion de type.
© 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.