Sur cette page

Non qualifié

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

Accès non qualifié

Que s'est-il passé ?

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

Pourquoi est-ce un problème ?

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 lui attribuer un identifiant s'il n'en possède pas encore.

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/regroupée

Que s'est-il 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 de module QML manquante.

Remarque : si vous importez des modules QML comportant des dépendances externes, vérifiez qu’ils sont bien installés et qu’ils se trouvent dans un chemin d’importation.

Pourquoi est-ce un problème ?

Les composants dont la portée des propriétés attachées ou des propriétés groupées est inconnue ne seront pas créés lors de l'exécution : ils seront remplacés par la valeur null.

Exemple

Essayons d’utiliser la propriété attachée (inexistante) 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 ne possède ni type associé ni propriété groupée nommée item. Pour corriger cet avertissement, supprimez le type associé et la propriété groupée.

Reportez-vous aux sections « Propriétés associées » et « Gestionnaires de signaux associés » pour savoir comment utiliser les propriétés associées, et à la section « 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

Que s’est-il passé ?

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

Remarque : le nom d’un gestionnaire de signal est constitué de la concaténation de « on » et du nom du signal en majuscules. Par exemple, « onHelloWorld » gère le signal « helloWorld » et « on_helloWorld » gère « _helloWorld ».

Remarque : si vous importez des modules QML comportant des dépendances externes, vérifiez qu’elles sont bien installées et qu’elles se trouvent dans un chemin d’importation.

Pourquoi est-ce un problème ?

Les composants dont les gestionnaires de signaux sont inconnus ne seront pas créés lors de l'exécution : ils seront à la place de type null.

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 composant « Item » ne dispose d’aucun signal nommé « mySignal ». Pour corriger cet avertissement, supprimez le gestionnaire de signal ou ajoutez le signal manquant.

La définition implicite de gestionnaires de signaux dans Connections est obsolète

Que s’est-il passé ?

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

Pourquoi est-ce problématique ?

Cette pratique est obsolète.

Exemple

import QtQuick

Window {
    id: root
    property int myInt

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

Pour corriger cet avertissement, remplacez la liaison du gestionnaire de signal par une fonction :

import QtQuick

Window {
    id: root
    property int myInt

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

Voir aussi Conventions de codage QML - Accès non qualifié.

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