Propriété manquante
Cette catégorie d'avertissement est orthographiée « [missing-property] » par qmllint.
Impossible d'attribuer une valeur à une propriété par défaut inexistante
Que s'est-il passé ?
Vous avez attribué un objet à une propriété par défaut inexistante.
Pourquoi est-ce un problème ?
Le moteur QML ne peut pas attribuer cet objet lors de l'exécution.
Exemple
Pour corriger cet avertissement, précisez la propriété à laquelle vous souhaitez effectuer la liaison ou, si vous êtes l'auteur du type, marquez une propriété comme 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
}
}La propriété n'existe pas
Que s'est-il passé ?
Vous avez attribué une expression à une propriété inexistante.
Pourquoi est-ce un problème ?
Le moteur QML ne peut pas attribuer cette expression lors de l'exécution.
Exemple
Pour corriger cet avertissement, supprimez la liaison ou corrigez une éventuelle faute de frappe :
Membre introuvable sur le type
Que s'est-il passé ?
Vous avez accédé à un membre dans une expression de membre de champ que les outils QML ne parviennent pas à trouver. 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 lors de l'exécution (car il existe sur un sous-type spécifique toujours présent), mais pas sur le type déclaré statiquement.
Pourquoi est-ce un problème ?
Les outils QML ne peuvent pas trouver ce membre, ce qui signifie que des fonctionnalités telles que « aller à la définition » et la saisie semi-automatique ne fonctionneront pas. Au moment de l'exécution, une erreur peut se produire ou vous pouvez obtenir un résultat incorrect si le membre n'existe réellement pas. Il n'y aura pas d'erreur si le membre existe effectivement toujours au moment de l'exécution ; toutefois, dans ce cas, il peut tout de même y avoir un coût en termes de performances dû à des 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 suffisamment 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, effectuez un transtypage de l'objet lu vers un type 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 d’ messageView est Item, qui ne possède pas de propriété sender: sender n’est défini que dans Message. Ici, nous savons toutefois 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.