qmllint
qmllint ist ein mit Qt ausgeliefertes Werkzeug, das die syntaktische Gültigkeit von QML-Dateien überprüft. Es warnt auch vor einigen QML-Anti-Mustern. Wenn Sie eine bestimmte Art von Warnung deaktivieren möchten, können Sie das entsprechende Flag dafür finden, indem Sie --help
auf der Kommandozeile übergeben.
Standardmäßig führen einige Probleme zu Warnungen, die gedruckt werden. Wenn es mehr Warnungen als die mit --max-warnings
konfigurierbare Grenze gibt, wird der Exit-Code ungleich Null sein. Geringfügige Probleme (wie z.B. unbenutzte Importe) sind jedoch standardmäßig nur Informationsmeldungen und haben keinen Einfluss auf den Exit-Code. qmllint ist sehr konfigurierbar und erlaubt es, Warnungen zu deaktivieren oder deren Behandlung zu ändern. Der Benutzer kann jedes Problem in eine Warnung oder eine Informationsmeldung umwandeln oder sie ganz abschalten.
qmllint warnt vor:
- Unqualifizierte Zugriffe auf Eigenschaften
- Verwendung von Signalhandlern ohne ein passendes Signal
- Verwendung von with-Anweisungen in QML
- Probleme im Zusammenhang mit der Kompilierung von QML-Code
- Unbenutzte Importe
- Veraltete Komponenten und Eigenschaften
- Und viele andere Dinge
Siehe QML Lint Warnungen und Fehler, um qmllint Warnungen und Fehler zu beheben.
Hinweis: Damit qmllint richtig arbeiten kann, benötigt es Typinformationen. Diese Informationen werden von QML-Modulen in den Importpfaden bereitgestellt. Das aktuelle Verzeichnis sowie die Importpfade für die in Qt eingebauten Typen werden standardmäßig als Importpfade verwendet. Um weitere Importpfade hinzuzufügen, die nicht in der Vorgabe enthalten sind, fügen Sie diese mit dem -I
Flag hinzu.
Um eine Übersicht und Erklärung aller verfügbaren Kommandozeilenoptionen zu erhalten, führen Sie qmllint --help
aus.
Compiler-Warnungen
qmllint kann Sie vor Code warnen, der von qmlsc nicht kompiliert werden kann.
Diese Warnungen sind standardmäßig nicht aktiviert. Um sie zu aktivieren, geben Sie --compiler warning
an oder passen Sie Ihre Einstellungsdatei entsprechend an.
Markieren von Komponenten und Eigenschaften als veraltet
qmllint erlaubt es Ihnen, sowohl Eigenschaften als auch Komponenten als veraltet zu markieren:
@Deprecated { reason: "Use NewCustomText instead" } Text { @Deprecated { reason: "Use newProperty instead" } property int oldProperty property int newProperty Component.onCompleted: console.log(oldProperty); // Warning: XY.qml:8:40: Property "oldProperty" is deprecated (Reason: Use newProperty instead) }
Die Warnungen für veraltete Komponenten werden jedes Mal angezeigt, wenn die Komponente erstellt wird.
Deaktivieren von Warnungen inline
Sie können jederzeit Warnungen in einer Datei mit // qmllint disable
vorübergehend deaktivieren.
Sie können dies am Ende einer Zeile tun, wenn eine einzelne Zeile Warnungen erzeugt:
Item {
property string foo
Item {
property string bar: foo // qmllint disable unqualified
}
}
Alternativ können Sie Kommentare für einen Zeilenblock deaktivieren, indem Sie den Kommentar in eine Zeile setzen, die nur // qmllint disable
enthält, und den Block mit // qmllint enable
beenden:
Item { property string foo Item { // qmllint disable unqualified property string bar: foo property string bar2: foo // qmllint enable unqualified } }
qmllint interpretiert alle einzeiligen Kommentare, die mit qmllint
beginnen, als Direktiven. Sie dürfen also einen Kommentar nicht auf diese Weise beginnen, es sei denn, Sie möchten Warnungen aktivieren oder deaktivieren.
Hinweis: Wie in den obigen Beispielen ist es besser, die Warnung oder eine Liste von Warnungen, die Sie deaktivieren wollen, explizit anzugeben, anstatt alle Warnungen zu deaktivieren. Dazu können Sie einfach die Warnungskategorien nach qmllint disable
auflisten (die Namen sind dieselben wie die in --help
aufgeführten Optionen).
Einstellungen
Zusätzlich zur Übergabe von Kommandozeilenoptionen können Sie qmllint auch über eine Einstellungsdatei konfigurieren. Die Kommandozeile --write-defaults
erzeugt eine solche Datei für Sie.
Einstellungsdateien heißen .qmllint.ini
und sehen wie folgt aus:
[General] AdditionalQmlImportPaths= DisableDefaultImports=false OverwriteImportTypes= ResourcePath= [Warnings] BadSignalHandler=warning Deprecated=warning ImportFailure=warning InheritanceCycle=warning MultilineStrings=info PropertyAlias=warning RequiredProperty=warning TypeError=warning UnknownProperty=warning UnqualifiedAccess=warning UnusedImports=info WithStatement=warning
Die Warnstufen können auf info
, warning
oder disable
gesetzt werden, genau wie bei den Kommandozeilenoptionen.
qmllint sucht automatisch nach einer Einstellungsdatei am Ort der qml-Datei, die gelintet werden soll. Es durchsucht auch alle übergeordneten Verzeichnisse, um diese Datei zu finden und wendet automatisch die darin enthaltenen Einstellungen an. Sie können dieses Verhalten durch die Verwendung von --ignore-settings
deaktivieren. Sie können diese Standardeinstellungen jederzeit außer Kraft setzen, indem Sie Befehlszeilenparameter angeben, die Vorrang vor den Warnstufen in den Einstellungen haben.
Skripting
qmllint kann mit der Option --json <file>
JSON schreiben oder ausgeben, das gültiges JSON mit Warnmeldungen, Datei- und Zeilenspeicherort der Warnungen und deren Schweregrad zurückgibt. Verwenden Sie den speziellen Dateinamen '-', um in stdout statt in eine Datei zu schreiben. Dies kann verwendet werden, um qmllint einfacher in Ihre Pre-Commit-Hooks oder CI-Tests zu integrieren.
Siehe auch Typbeschreibungsdateien und Qt Quick Tools and Utilities.
© 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.