Auf dieser Seite

Syntax

Diese Warnkategorie wird von qmllint als „ [syntax] “ bezeichnet.

Verschachtelte Inline-Komponenten werden nicht unterstützt

Was ist passiert?

Sie haben eine Inline-Komponente innerhalb einer anderen Inline-Komponente definiert.

Warum ist das ein Problem?

Die Sprache QML lässt keine verschachtelten Inline-Komponenten zu. Definieren Sie Inline-Komponenten immer innerhalb des Root-Elements der QML-Datei.

Beispiel

import QtQuick

Item {
    component Correct: Item {
        component Evil: Item { ... }
        ...
    }
}

Um diese Warnung zu beheben, verschieben Sie alle Komponenten in das Stammelement der QML-Datei.

import QtQuick

Item {
    component NotEvilAnymore: Item { ... }
    component Correct: Item {
        ...
    }
}

Auf die Deklaration einer Inline-Komponente muss ein Typname folgen

Was ist passiert?

Sie haben eine Inline-Komponente mit einem ungültigen Basistyp definiert.

Warum ist das ein Problem?

Inline-Komponenten benötigen einen Basistyp, von dem sie erben können.

Beispiel

import QtQuick

Item {
    property Item someProperty
    component InlineComponent: someProperty {}
}

In diesem Fall ist „ someProperty “ kein gültiger Typname, da es sich um einen Eigenschaftsnamen handelt. Um diese Warnung zu beheben, verwende einen gültigen Typ als Basistyp der Komponente:

import QtQuick

Item {
    property Item someProperty
    component InlineComponent: Item { ... }
}

Ungültiger Alias-Ausdruck: Ein Initialisierer ist erforderlich

Was ist passiert?

Sie haben einen Eigenschaftsalias ohne die damit verknüpfte Eigenschaft definiert.

Warum ist das ein Problem?

Alias-Eigenschaften müssen in ihrer Definition immer die Eigenschaft, auf die der Alias verweist, oder deren ID enthalten.

Beispiel

import QtQuick

Item {
    id: root
    property int someProperty
    property alias aliasProperty
}

Um diese Warnung zu beheben, ersetzen Sie den Alias durch eine normale Eigenschaft oder fügen Sie die fehlende, als Alias verwendete Eigenschaft hinzu:

import QtQuick

Item {
    id: root
    property int someProperty
    property alias withAliasedProperty: root.someProperty
}

Ungültiger Alias-Ausdruck: Nur IDs und Feldmitgliedsausdrücke können als Alias verwendet werden

Was ist passiert?

Sie haben einen Eigenschaftsalias definiert, der einen Ausdruck als Alias verwendet, der weder eine ID noch ein Feldmitgliedsausdruck ist.

Ein Feldmitgliedsausdruck ist ein Ausdruck der Form „ someId.someProperty “.

Warum ist das ein Problem?

Alias-Eigenschaften müssen in ihrer Definition immer die Eigenschaft enthalten, auf die sie verweisen, und dürfen nicht an andere Ausdrücke als IDs und Feldmitgliedsausdrücke gebunden werden.

Beispiel

import QtQuick

Item {
    property int p
    property alias someProperty: p + 1
}

Um diese Warnung zu beheben, ersetzen Sie den Alias durch eine normale Eigenschaft oder binden Sie ihn an eine ID oder einen Feldmitgliedsausdruck:

import QtQuick

Item {
    id: root
    property int p
    property int someProperty: p + 1
    property alias alternative: root.p
}

Auf eine ID muss ein Bezeichner folgen

Was ist passiert?

Sie haben eine ID ohne Wert definiert.

Warum ist das ein Problem?

Die Sprache QML erlaubt keine leeren IDs.

Beispiel

import QtQuick

Item {
    id:;
}

Um diese Warnung zu beheben, verknüpfen Sie die ID mit einem gültigen Namen:

import QtQuick

Item {
    id: root;
}

ID konnte nicht analysiert werden

Was ist passiert?

Sie haben eine ID an einen Ausdruck gebunden, der kein Name ist.

Warum ist das ein Problem?

Die Sprache QML 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 Listenelement

Was ist passiert?

Sie haben einen Ausdruck, der kein Objekt ist, in eine Liste von Objekten eingefügt.

Warum ist das falsch?

Die Sprache QML erlaubt nur Objekte in Objektlisten.

Beispiel

import QtQuick

Item {
    property int hello
    property list<Item> myList: [
        Item {}, hello{}
    ]
}

Um diese Warnung zu beheben, verwende einen gültigen Objekttyp oder entferne das Element aus der Liste:

import QtQuick

Item {
    component Hello: Item {}
    property list<Item> myList: [
        Item {}, Hello{}
    ]
}

Unbekanntes Argument für „pragma“

Was ist passiert?

Sie haben ein ungültiges Argument für ein Pragma angegeben.

Warum ist das ein Problem?

Das Pragma hat keine Wirkung.

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 {
}

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