Syntax
Diese Warnkategorie wird von qmllint mit [syntax]
geschrieben.
Verschachtelte Inline-Komponenten werden nicht unterstützt
Was ist passiert?
Sie haben eine Inline-Komponente innerhalb einer anderen Inline-Komponente definiert.
Warum ist das schlecht?
Die QML-Sprache erlaubt keine verschachtelten Inline-Komponenten. Definieren Sie Inline-Komponenten immer innerhalb des Wurzelelements der QML-Datei.
Beispiel
import QtQuick Item { component Correct: Item { component Evil: Item { ... } ... } }
Um diese Warnung zu beheben, verschieben Sie alle Komponenten in das Wurzelelement der QML-Datei.
import QtQuick Item { component NotEvilAnymore: Item { ... } component Correct: Item { ... } }
Auf die Deklaration einer Inline-Komponente muss ein Typename folgen
Was ist passiert?
Sie haben eine Inline-Komponente mit einem ungültigen Basistyp definiert.
Warum ist das schlecht?
Inline-Komponenten benötigen einen Basistyp, von dem sie erben können.
Beispiel
In diesem Fall ist someProperty
kein gültiger Typname, da es ein Eigenschaftsname ist. Um diese Warnung zu beheben, verwenden Sie einen gültigen Typ als Basistyp für die Komponente:
import QtQuick Item { property Item someProperty component InlineComponent: Item { ... } }
Ungültiger Alias-Ausdruck: ein Initialisierer wird benötigt
Was ist passiert?
Sie haben einen Eigenschaftsalias ohne die zugehörige Eigenschaft definiert.
Warum ist das schlecht?
Alias-Eigenschaften müssen immer ihre Aliaseigenschaft oder id in ihrer Definition haben.
Beispiel
Um diese Warnung zu beheben, ersetzen Sie den Alias durch eine normale Eigenschaft oder fügen Sie die fehlende Aliaseigenschaft hinzu:
import QtQuick Item { id: root property int someProperty property alias withAliasedProperty: root.someProperty }
Ungültiger Alias-Ausdruck: Nur IDs und Feldmitgliedausdrücke können als Alias verwendet werden.
Was ist passiert?
Sie haben einen Eigenschaftsalias definiert, der einen anderen Ausdruck als eine ID oder einen Feldmitgliedausdruck aliasiert.
Ein Feldmitgliedausdruck ist ein Ausdruck der Form someId.someProperty
.
Warum ist das schlecht?
Aliaseigenschaften müssen immer ihre Aliaseigenschaft in ihrer Definition haben und können nicht an andere Ausdrücke als IDs und Feldmemberausdrücke gebunden werden.
Beispiel
Um diese Warnung zu beheben, ersetzen Sie den Alias durch eine normale Eigenschaft oder binden Sie ihn an einen ID- oder Feldausdruck:
import QtQuick Item { id: root property int p property int someProperty: p + 1 property alias alternative: root.p }
Id muss von einem Bezeichner gefolgt werden
Was ist passiert?
Sie haben eine id ohne einen Wert definiert.
Warum ist das schlecht?
Die QML-Sprache erlaubt keine leeren Ids.
Beispiel
import QtQuick Item { id:; }
Um diese Warnung zu beheben, binden Sie die id an einen gültigen Namen:
import QtQuick Item { id: root; }
Failed to parse id
Was ist passiert?
Sie haben eine id an einen anderen Ausdruck als einen Namen gebunden.
Warum ist das schlecht?
Die QML-Sprache erlaubt nur Namen als Bindungen an ids; komplexere Ausdrücke können nicht verwendet werden.
Beispiel
import QtQuick Item { property int a property int b function f() { if (true) return a return b } id: f() }
Um diese Warnung zu beheben, binden Sie die id an einen gültigen Namen oder deklarieren Sie eine Eigenschaft und richten Sie eine Bindung ein:
import QtQuick Item { property int a property int b function f() { if (true) return a return b } id: someItem // it would be confusing to call it `f` like the function property int alternative: f() }
Deklaration eines Objekts, das kein QML-Objekt ist, als Listenmitglied
Was ist passiert?
Sie haben einen Ausdruck, der kein Objekt ist, in eine Liste von Objekten eingefügt.
Warum ist das schlecht?
Die QML-Sprache erlaubt nur Objekte in Objektlisten.
Beispiel
Um diese Warnung zu beheben, verwenden Sie einen gültigen Objekttyp, oder entfernen Sie das Element aus der Liste:
Innerhalb von Inline-Komponenten deklarierte Enums werden ignoriert
Was ist passiert?
Sie haben eine Enum innerhalb einer Inline-Komponente definiert.
Warum ist das schlecht?
Die QML-Sprache erlaubt Enum-Definitionen nur innerhalb des Root-Elements der QML-Datei. Enums, die innerhalb einer Inline-Komponente deklariert werden, sind unbrauchbar, auch innerhalb der Inline-Komponente. Dasselbe gilt für Enums, die innerhalb von Nicht-Root-QML-Objekten deklariert werden.
Beispiel
Um diese Warnung zu beheben, verschieben Sie die Enum-Deklaration in das Root-Element der QML-Datei:
Unbekanntes Argument für pragma
Was ist passiert?
Sie haben ein ungültiges Argument für ein pragma angegeben.
Warum ist das schlecht?
Das pragma wird keine Wirkung haben.
Beispiel
pragma ComponentBehavior: Buond import QtQuick Item { }
Sie können diese Warnung beheben, indem Sie das pragma entfernen oder einen möglichen Tippfehler korrigieren:
pragma ComponentBehavior: Bound import QtQuick Item { }
© 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.