Syntaxe
Cette catégorie d'avertissement est orthographiée [syntax] par qmllint.
Les composants imbriqués en ligne ne sont pas pris en charge
Qu'est-ce qui s'est passé ?
Vous avez défini un composant inline à l'intérieur d'un autre composant inline.
Pourquoi est-ce mauvais ?
Le langage QML n'autorise pas les composants en ligne imbriqués. Définissez toujours les composants inline à l'intérieur de l'élément racine du fichier QML.
Exemple
import QtQuick
Item {
component Correct: Item {
component Evil: Item { ... }
...
}
}Pour corriger cet avertissement, placez tous les composants à la racine du fichier QML.
import QtQuick
Item {
component NotEvilAnymore: Item { ... }
component Correct: Item {
...
}
}La déclaration d'un composant en ligne doit être suivie d'un nom de type.
Qu'est-ce qui s'est passé ?
Vous avez défini un composant en ligne avec un type de base non valide.
Pourquoi est-ce mauvais ?
Les composants inline ont besoin d'un type de base dont ils peuvent hériter.
Exemple
Dans ce cas, someProperty n'est pas un nom de type valide, car il s'agit d'un nom de propriété. Pour corriger cet avertissement, utilisez un type valide comme type de base du composant :
import QtQuick
Item {
property Item someProperty
component InlineComponent: Item { ... }
}Expression d'alias non valide : un initialisateur est nécessaire
Qu'est-ce qui s'est passé ?
Vous avez défini un alias de propriété sans sa propriété aliasée.
Pourquoi est-ce mauvais ?
Les propriétés alias doivent toujours avoir leur propriété aliasée ou leur identifiant dans leur définition.
Exemple
Pour corriger cet avertissement, remplacez l'alias par une propriété normale ou ajoutez la propriété alias manquante :
import QtQuick Item { id: root property int someProperty property alias withAliasedProperty: root.someProperty }
Expression d'alias non valide : seuls les identifiants et les expressions de membres de champs peuvent être aliasés.
Qu'est-ce qui s'est passé ?
Vous avez défini un alias de propriété qui alias une expression autre qu'un ID ou une expression de membre de champ.
Une expression de membre de champ est une expression de la forme someId.someProperty.
Pourquoi est-ce mauvais ?
Les propriétés alias doivent toujours avoir la propriété aliasée dans leur définition et ne peuvent pas se lier à d'autres expressions que les ID et les expressions de membre de champ.
Exemple
Pour corriger cet avertissement, remplacez l'alias par une propriété normale ou liez-le à une expression de type "id" ou "field member" :
import QtQuick Item { id: root property int p property int someProperty: p + 1 property alias alternative: root.p }
Id doit être suivi d'un identifiant
Que s'est-il passé ?
Vous avez défini un identifiant sans valeur.
Pourquoi est-ce mauvais ?
Le langage QML n'autorise pas les identifiants vides.
Exemple
import QtQuick Item { id:; }
Pour corriger cet avertissement, liez l'identifiant à un nom valide :
import QtQuick Item { id: root; }
Failed to parse id
Qu'est-ce qui s'est passé ?
Vous avez lié un identifiant à une expression autre qu'un nom.
Pourquoi est-ce mauvais ?
Le langage QML n'autorise que les noms pour lier les identifiants ; les expressions plus complexes ne peuvent pas être utilisées.
Exemple
import QtQuick Item { property int a property int b function f() { if (true) return a return b } id: f() }
Pour corriger cet avertissement, liez l'identifiant à un nom valide ou déclarez une propriété et mettez en place une liaison :
import QtQuick Item { property int a property int b function f() { if (true) return a return b } id: someItem // it would be confusing to call it `f` like the function property int alternative: f() }
Déclaration d'un objet qui n'est pas un objet QML en tant que membre d'une liste
Qu'est-ce qui s'est passé ?
Vous avez ajouté une expression autre qu'un objet dans une liste d'objets.
Pourquoi est-ce mauvais ?
Le langage QML n'autorise que les objets dans les listes d'objets.
Exemple
Pour corriger cet avertissement, utilisez un type d'objet valide ou supprimez l'élément de la liste :
Les Enums déclarés à l'intérieur de composants inline sont ignorés
Qu'est-ce qui s'est passé ?
Vous avez défini une énumération à l'intérieur d'un composant en ligne.
Pourquoi est-ce mauvais ?
Le langage QML n'autorise les définitions d'enum qu'à l'intérieur de l'élément racine du fichier QML. Les enums déclarés à l'intérieur d'un composant inline sont inutilisables, même à l'intérieur du composant inline. Il en va de même pour les enums déclarés à l'intérieur d'objets QML non racine.
Exemple
Pour corriger cet avertissement, déplacez la déclaration de l'enum dans l'élément racine du fichier QML :
Unknown argument to pragma
Que s'est-il passé ?
Vous avez spécifié un argument non valide pour un pragma.
Pourquoi est-ce mauvais ?
Le pragma n'aura aucun effet.
Exemple
pragma ComponentBehavior: Buond
import QtQuick
Item {
}Vous pouvez corriger cet avertissement en supprimant le pragma ou en corrigeant une éventuelle faute de frappe :
pragma ComponentBehavior: Bound
import QtQuick
Item {
}© 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.