Unqualifiziert

Diese Warnkategorie wird von qmllint mit [unqualified] geschrieben.

Unqualifizierter Zugriff

Was ist passiert?

Sie haben auf ein übergeordnetes Element ohne dessen id zugegriffen.

Warum ist das schlecht?

Dies macht den Code schwerer lesbar und beeinträchtigt die Leistung.

Beispiel

import QtQuick

Item {
    property int helloWorld
    Item {
        property int unqualifiedAccess: helloWorld + 1 // not ok: Unqualified access here.
    }
}

Um diese Warnung zu beheben, verweisen Sie auf das übergeordnete Objekt über die id. Sie müssen zuerst eine id hinzufügen, wenn das Objekt derzeit keine hat.

import QtQuick

Item {
    id: root
    property int helloWorld
    Item {
        property int unqualifiedAccess: root.helloWorld + 1 // ok: this access is qualified now!
    }
}

Unbekannter angehängter/gruppierter Eigenschaftsbereich

Was ist passiert?

Sie haben einen angehängten Eigenschaftstyp oder eine gruppierte Eigenschaft verwendet, die nicht gefunden werden kann. Dies kann durch einen Tippfehler oder eine fehlende QML-Modul-Abhängigkeit verursacht werden.

Hinweis: Wenn Sie QML-Module mit externen Abhängigkeiten importieren, stellen Sie sicher, dass diese tatsächlich installiert sind und sich in einem Importpfad befinden.

Warum ist das schlecht?

Komponenten mit unbekannten angehängten Eigenschaftsbereichen oder unbekannten gruppierten Eigenschaften werden zur Laufzeit nicht erstellt: Sie sind stattdessen null.

Beispiel

Versuchen wir, die (nicht vorhandene) angehängte Eigenschaft von Item oder die (nicht vorhandene) gruppierte Eigenschaft grouped von Item zu verwenden:

import QtQuick

Item {
    Item.helloAttached: 44 // not ok: unknown attached property scope Item. [unqualified]
    grouped.helloGrouped: 44 // not ok: unknown grouped property scope grouped. [unqualified]
}

In der Tat hat Item weder einen angehängten Typ noch eine gruppierte Eigenschaft namens item. Um diese Warnung zu beheben, entfernen Sie den angehängten Typ und die gruppierte Eigenschaft.

Siehe angehängte Eigenschaften und angehängte Signalhandler zur Verwendung von angehängten Eigenschaften und gruppierte Eigenschaften zur Verwendung von gruppierten Eigenschaften.

Kein passendes Signal für Handler gefunden

Was ist passiert?

Sie haben einen Signalhandler für ein Signal verwendet, das nicht gefunden werden kann. Dies kann durch einen Tippfehler im Signal-Handler oder durch eine fehlende QML-Modul-Abhängigkeit verursacht werden.

Hinweis: Der Name eines Signalhandlers ist on in Verbindung mit dem großgeschriebenen Signalnamen. onHelloWorld behandelt beispielsweise das Signal helloWorld und on_helloWorld behandelt _helloWorld.

Hinweis: Wenn Sie QML-Module mit externen Abhängigkeiten importieren, vergewissern Sie sich, dass diese tatsächlich installiert sind und sich in einem Importpfad befinden.

Warum ist das schlecht?

Komponenten mit unbekannten Signalhandlern werden zur Laufzeit nicht erstellt: Sie sind stattdessen null.

Beispiel

Versuchen wir, einen Signalhandler für das (nicht vorhandene) Signal mySignal zu schreiben:

import QtQuick

Item {
    onMySignal: console.log("hello") // not ok: no matching signal found for handler "onMySignal" [unqualified]
}

In der Tat hat dieses Item kein Signal namens mySignal. Um diese Warnung zu beheben, entfernen Sie den Signalhandler oder fügen Sie das fehlende Signal hinzu.

Die implizite Definition von Signal-Handlern in Connections ist veraltet

Was ist passiert?

Sie haben einen Signalhandler für einen Connections Typ verwendet.

Warum ist das schlecht?

Dies ist veraltet.

Beispiel

import QtQuick

Window {
    id: root
    property int myInt

    Connections {
        target: root
        onMyIntChanged: console.log("new int", myInt)
    }
}

Um diese Warnung zu beheben, ersetzen Sie die Signalhandler-Bindung durch eine Funktion:

import QtQuick

Window {
    id: root
    property int myInt

    Connections {
        target: root
        function onMyIntChanged() { console.log("new int", myInt) }
    }
}

Siehe auch QML Coding Conventions - Unqualifizierter Zugriff.

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