Unaufgelöster Typ
Diese Kategorie enthält folgende Warnungen:
- Typ wird verwendet, ist aber nicht aufgelöst
- Typ wurde für den Rückgabetyp der Methode nicht gefunden
- Typ wurde für den Typ des Parameters in der Methode nicht gefunden
- Eigenschaft hat unvollständigen Typ; Möglicherweise fehlt ein Import
- Typ der Eigenschaft nicht gefunden; Dies ist wahrscheinlich auf einen fehlenden Abhängigkeitseintrag oder einen Typ zurückzuführen, der nicht deklarativ offengelegt wird
- Typ der Eigenschaft nicht vollständig aufgelöst; Dies ist wahrscheinlich auf einen fehlenden Abhängigkeitseintrag oder einen nicht deklarativ dargestellten Typ zurückzuführen
- Typ nicht im Namespace gefunden
Diese Warnungen weisen normalerweise auf fehlende Importe oder fehlerhafte QML-Module hin, je nachdem, ob Sie ein QML-Modul verwenden oder schreiben.
Diese Warnkategorie wird von qmllint mit [unresolved-type]
geschrieben.
Für Benutzer von QML-Modulen
Was ist passiert?
Sie haben einen Typ verwendet, der vom QML-Tooling nicht gefunden wurde. Dies deutet in der Regel auf einen möglichen Tippfehler, einen fehlenden Import oder unsachgemäß eingerichtete Importpfade hin.
Warum ist das schlecht?
Der Typ wird vom QML-Tooling nicht gefunden, und höchstwahrscheinlich auch nicht von der QML-Engine.
Beispiele
Tippfehler
import QtQuick Itme { ... }
Um diese Warnung zu beheben, korrigieren Sie den Tippfehler:
import QtQuick Item { ... }
Fehlende Import-Anweisung
Item { ... }
Um diese Warnung zu beheben, importieren Sie das Modul, das Item
zur Verfügung stellt:
import QtQuick Item { ... }
Wenn das Hinzufügen der Importanweisung nicht hilft, sehen Sie sich Ihre Importpfade an.
Wenn Sie diese Warnung über QML Language Server erhalten, ist Ihre Einrichtung möglicherweise unvollständig.
Für QML-Modul-Autoren
Was ist passiert?
Das QML-Tooling kann einen Typ in Ihrem QML-Modul nicht finden. Es kann sich um einen Typ handeln, den Sie QML direkt oder indirekt durch Verwendung als:
- Basistyp
- Eigenschaftstyp
- Signal-, Slot- oder
Q_INVOKABLE
Parameter-Typ Q_INVOKABLE
Rückgabetyp
Möglicherweise fehlt Ihnen eine deklarative Typregistrierung, wenn der nicht aufgelöste Typ von Ihrem Modul offengelegt wird.
Andernfalls könnte Ihr QML-Modul nicht deklarierte Abhängigkeiten zu dem QML-Modul haben, das den nicht aufgelösten Typ exponiert.
Warum ist das schlecht?
Die QML-Werkzeuge funktionieren nicht mit Ihren Typen, und die Benutzer Ihres QML-Moduls erhalten unberechtigte Warnungen, die sie nicht beheben können.
Beispiele
Fehlende Typregistrierung
Lesen Sie in Defining QML Types from C++ nach, wie Sie Ihre Typen deklarativ registrieren. Stellen Sie sicher, dass alle Typen und Enums, die direkt oder indirekt in QML verwendet werden, registriert sind.
Fehlende QML-Modul-Abhängigkeit
Lassen Sie MyItem
ein C++-Typ in Ihrem QML-Modul sein:
class MyItem: public QQuickItem { ... QML_ELEMENT ... Q_PROPERTY(SomeType someProperty READ someProperty WRITE setSomeProperty NOTIFY somePropertyChanged) ... }
Die QML-Werkzeuge können MyItem
nicht korrekt auflösen, wenn sie nicht zuerst QQuickItem
oder SomeType
auflösen können. Wenn QQuickItem
im QML-Modul QtQuick
und SomeType
in SomeModule
enthalten ist, müssen Sie diese C++-Abhängigkeiten in der QML-Moduldefinition angeben.
Dazu fügen Sie die Abhängigkeiten zur QML-Moduldefinition hinzu. Dies kann zum Beispiel mit DEPENDENCIES
geschehen:
qt_add_qml_module( ... DEPENDENCIES QtQuick # for QQuickItem to be resolved SomeModule # for SomeType to be resolved )
Weitere Informationen finden Sie unter Deklaration von C++-Abhängigkeiten zwischen QML-Modulen.
© 2025 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.