Sur cette page

Syntaxe

Cette catégorie d'avertissement est orthographiée « [syntax] » par qmllint.

Les composants inline imbriqués ne sont pas pris en charge

Que s'est-il passé ?

Vous avez défini un composant en ligne à l'intérieur d'un autre composant en ligne.

Pourquoi est-ce un problème ?

Le langage QML n'autorise pas les composants inline 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, déplacez tous les composants vers l’élément racine du fichier QML.

import QtQuick

Item {
    component NotEvilAnymore: Item { ... }
    component Correct: Item {
        ...
    }
}

La déclaration d'un composant inline doit être suivie d'un nom de type

Que s'est-il passé ?

Vous avez défini un composant en ligne avec un type de base non valide.

Pourquoi est-ce un problème ?

Les composants en ligne ont besoin d'un type de base dont ils peuvent hériter.

Exemple

import QtQuick

Item {
    property Item someProperty
    component InlineComponent: someProperty {}
}

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 initialiseur est nécessaire

Que s'est-il passé ?

Vous avez défini un alias de propriété sans la propriété à laquelle il fait référence.

Pourquoi est-ce un problème ?

Les propriétés d'alias doivent toujours comporter la propriété ou l'identifiant qu'elles désignent dans leur définition.

Exemple

import QtQuick

Item {
    id: root
    property int someProperty
    property alias aliasProperty
}

Pour corriger cet avertissement, remplacez l'alias par une propriété normale ou ajoutez la propriété référencée 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 membre de champ peuvent faire l'objet d'un alias

Que s'est-il passé ?

Vous avez défini un alias de propriété qui fait référence à une expression autre qu'un identifiant ou une expression de membre de champ.

Une expression de membre de champ est une expression de la forme someId.someProperty.

Pourquoi est-ce un problème ?

Les propriétés d'alias doivent toujours inclure la propriété à laquelle elles renvoient dans leur définition, et ne peuvent pas être liées à d'autres expressions que des identifiants et des expressions de membre de champ.

Exemple

import QtQuick

Item {
    property int p
    property alias someProperty: p + 1
}

Pour corriger cet avertissement, remplacez l'alias par une propriété normale ou liez-le à un identifiant ou à une expression de membre de champ :

import QtQuick

Item {
    id: root
    property int p
    property int someProperty: p + 1
    property alias alternative: root.p
}

L'identifiant doit être suivi d'un identifiant

Que s'est-il passé ?

Vous avez défini un identifiant sans valeur.

Pourquoi est-ce un problème ?

Le langage QML n'autorise pas les identifiants vides.

Exemple

import QtQuick

Item {
    id:;
}

Pour corriger cet avertissement, associez l'identifiant à un nom valide :

import QtQuick

Item {
    id: root;
}

Échec de l'analyse de l'identifiant

Que s'est-il passé ?

Vous avez lié un identifiant à une expression autre qu'un nom.

Pourquoi est-ce un problème ?

Le langage QML n'autorise que des noms comme liaisons aux 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 configurez 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

Que s'est-il passé ?

Vous avez ajouté une expression autre qu'un objet dans une liste d'objets.

Pourquoi est-ce un problème ?

Le langage QML n'autorise que des objets dans les listes d'objets.

Exemple

import QtQuick

Item {
    property int hello
    property list<Item> myList: [
        Item {}, hello{}
    ]
}

Pour corriger cet avertissement, utilisez un type d'objet valide ou supprimez l'élément de la liste :

import QtQuick

Item {
    component Hello: Item {}
    property list<Item> myList: [
        Item {}, Hello{}
    ]
}

Argument inconnu pour pragma

Que s'est-il passé ?

Vous avez spécifié un argument non valide pour un pragma.

Pourquoi est-ce un problème ?

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.