Sur cette page

Non qualifié

Cette catégorie d'avertissement est orthographiée [unqualified] par qmllint.

Accès non qualifié

Qu'est-ce qui s'est passé ?

Vous avez accédé à un élément parent sans son identifiant.

Pourquoi est-ce mauvais ?

Cela rend le code plus difficile à lire et nuit aux performances.

Exemple

import QtQuick

Item {
    property int helloWorld
    Item {
        property int unqualifiedAccess: helloWorld + 1 // not ok: Unqualified access here.
    }
}

Pour corriger cet avertissement, faites référence à l'objet parent par son identifiant. Vous devrez d'abord ajouter un identifiant si l'objet n'en a pas.

import QtQuick

Item {
    id: root
    property int helloWorld
    Item {
        property int unqualifiedAccess: root.helloWorld + 1 // ok: this access is qualified now!
    }
}

Portée inconnue d'une propriété attachée/groupée

Qu'est-ce qui s'est passé ?

Vous avez utilisé un type de propriété attachée ou une propriété groupée introuvable. Cela peut être dû à une faute de frappe ou à une dépendance manquante du module QML.

Note : Si vous importez des modules QML avec des dépendances externes, vérifiez qu'ils sont effectivement installés et qu'ils se trouvent dans un chemin d'importation.

Pourquoi est-ce mauvais ?

Les composants dont l'étendue des propriétés attachées est inconnue ou dont les propriétés groupées sont inconnues ne seront pas créés à l'exécution : ils seront nuls à la place.

Exemple

Essayons d'utiliser la propriété attachée (inexistante) de Item ou la propriété groupée (inexistante) grouped de Item:

import QtQuick

Item {
    Item.helloAttached: 44 // not ok: unknown attached property scope Item. [unqualified]
    grouped.helloGrouped: 44 // not ok: unknown grouped property scope grouped. [unqualified]
}

En effet, Item n'a pas de type attaché ni de propriété groupée appelée item. Pour corriger cet avertissement, supprimez le type attaché et la propriété groupée.

Reportez-vous à Propriétés attachées et Gestionnaires de signaux attachés pour savoir comment utiliser les propriétés attachées et à Propriétés groupées pour savoir comment utiliser les propriétés groupées.

Aucun signal correspondant n'a été trouvé pour le gestionnaire

Qu'est-ce qui s'est passé ?

Vous avez utilisé un gestionnaire de signal sur un signal introuvable. Cela peut être dû à une faute de frappe dans le gestionnaire de signal ou à une dépendance de module QML manquante.

Remarque : le nom d'un gestionnaire de signal est on concaténé avec le nom du signal en majuscules. onHelloWorld gère le signal helloWorld et on_helloWorld gère _helloWorld, par exemple.

Note : Si vous importez des modules QML avec des dépendances externes, vérifiez qu'ils sont effectivement installés et qu'ils se trouvent dans un chemin d'importation.

Pourquoi est-ce mauvais ?

Les composants dont les gestionnaires de signaux sont inconnus ne seront pas créés au moment de l'exécution : ils seront alors nuls.

Exemple

Essayons d'écrire un gestionnaire de signal pour le signal (inexistant) mySignal:

import QtQuick

Item {
    onMySignal: console.log("hello") // not ok: no matching signal found for handler "onMySignal" [unqualified]
}

En effet, ce Item n'a pas de signal appelé mySignal. Pour corriger cet avertissement, supprimez le gestionnaire de signal ou ajoutez le signal manquant.

La définition implicite d'un gestionnaire de signal dans les connexions est obsolète.

Qu'est-ce qui s'est passé ?

Vous avez utilisé un gestionnaire de signal sur un type Connections.

Pourquoi est-ce mauvais ?

Ce type est déprécié.

Exemple

import QtQuick

Window {
    id: root
    property int myInt

    Connections {
        target: root
        onMyIntChanged: console.log("new int", myInt)
    }
}

Pour corriger cet avertissement, remplacez le signal handler binding par une fonction :

import QtQuick

Window {
    id: root
    property int myInt

    Connections {
        target: root
        function onMyIntChanged() { console.log("new int", myInt) }
    }
}

Voir aussi QML Coding Conventions - Unqualified Access.

© 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.