Sur cette page

Type non résolu

Cette catégorie d'avertissement est orthographiée [unresolved-type] par qmllint.

Cette catégorie contient les avertissements suivants :

  • Le type est utilisé mais n'est pas résolu
  • Le type n'a pas été trouvé pour le type de retour de la méthode
  • Le type n'a pas été trouvé pour le type de paramètre de la méthode
  • Property has incomplete type ; You may be missing an import
  • Type de propriété non trouvé ; Ceci est probablement dû à une entrée de dépendance manquante ou à un type qui n'est pas exposé de manière déclarative.
  • Le type de propriété n'est pas entièrement résolu ; Ceci est probablement dû à une entrée de dépendance manquante ou à un type qui n'est pas exposé de manière déclarative.
  • Type non trouvé dans l'espace de noms

Ces avertissements indiquent généralement des importations manquantes ou des modules QML défectueux, selon que vous utilisez ou écrivez un module QML.

Pour les utilisateurs de modules QML

Que s'est-il passé ?

Vous avez utilisé un type qui n'a pas été trouvé par l'outil QML. Cela indique généralement une coquille potentielle, une importation manquante ou des chemins d'importation mal configurés.

Pourquoi est-ce mauvais ?

Le type ne peut pas être trouvé par l'outil QML, et très probablement pas par le moteur QML.

Exemples de typographie

Faute de frappe

import QtQuick

Item { ... }

Pour corriger cet avertissement, corrigez la faute de frappe :

import QtQuick

Item { ... }

Déclaration d'importation manquante

Item { ... }

Pour corriger cet avertissement, importez le module qui expose Item:

import QtQuick

Item { ... }

Si l'ajout de l'instruction d'importation n'apporte pas d'aide, jetez un coup d'œil à vos chemins d'importation.

Si vous obtenez cet avertissement via QML Language Server, il se peut que votre configuration soit incomplète.

Pour les auteurs de modules QML

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

L'outil QML ne trouve pas un type dans votre module QML. Il peut s'agir d'un type que vous exposez à QML directement ou indirectement en l'utilisant en tant que :

  • Type de base
  • Type de propriété
  • Type de signal, de slot ou de paramètre Q_INVOKABLE
  • Q_INVOKABLE type de retour

Il se peut qu'il vous manque un enregistrement de type déclaratif si le type non résolu est exposé par votre module.

Dans le cas contraire, votre module QML pourrait avoir des dépendances non déclarées avec le module QML exposant le type non résolu.

Pourquoi est-ce mauvais ?

L'outil QML ne fonctionnera pas sur vos types et les utilisateurs de votre module QML recevront de faux avertissements qu'ils ne pourront pas corriger.

Exemples de problèmes

Enregistrement de type manquant

Reportez-vous à la section Définir des types QML à partir de C++ pour savoir comment enregistrer vos types de manière déclarative. Assurez-vous que tous les types et enums exposés directement et indirectement à QML sont enregistrés.

Dépendance de module QML manquante

Laissez MyItem être un type C++ dans votre module QML :

class MyItem: public QQuickItem {
    ...
    QML_ELEMENT
    ...
    Q_PROPERTY(SomeType someProperty READ someProperty WRITE setSomeProperty NOTIFY somePropertyChanged)
    ...
}

L'outil QML ne peut pas résoudre MyItem correctement s'il ne peut pas résoudre QQuickItem ou SomeType en premier. Si QQuickItem se trouve dans le module QML QtQuick et SomeType dans SomeModule, vous devez indiquer ces dépendances C++ dans la définition du module QML.

Pour ce faire, ajoutez les dépendances à la définition du module QML. Cela peut être fait avec DEPENDENCIES, par exemple :

qt_add_qml_module(
    ...
    DEPENDENCIES
        QtQuick # for QQuickItem to be resolved
        SomeModule # for SomeType to be resolved
)

Pour plus d'informations, reportez-vous à la déclaration des dépendances C++ entre les modules QML.

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