Unerstellbarer Typ

Diese Warnkategorie wird von qmllint mit [uncreatable-type] geschrieben.

Namespace muss mit einem Großbuchstaben beginnen

Was ist passiert?

Sie haben ein QML-Objekt aus einem Namespace mit Kleinbuchstaben verwendet.

Warum ist das schlecht?

Die QML-Sprache verbietet Namespaces in Kleinbuchstaben.

Beispiel

import QtQuick as quick

quick.Item { ... }

Um die Warnung zu beheben, benennen Sie den Namespace so um, dass er mit einem Großbuchstaben beginnt:

import QtQuick as Quick

Quick.Item { ... }

Singleton-Typ ist nicht erzeugbar

Was ist passiert?

Sie haben versucht, ein QML-Objekt aus einem Singleton-Typ zu instanziieren.

Warum ist das schlecht?

Die QML-Sprache verbietet die Instanziierung von Singletons.

Beispiel

import QtQuick

Item {
    Qt { // note: Qt is a singleton type
        id: qt
    }

    property string someProperty: qt.uiLanguage
}

Um die Warnung zu beheben, verwenden Sie das Singleton direkt, ohne es zu instanzieren:

import QtQuick

Item {
    property string someProperty: Qt.uiLanguage
}

Typ ist nicht erzeugbar

Was ist passiert?

Sie haben versucht, ein QML-Objekt aus einem uncreatable type zu instanziieren.

Warum ist das schlecht?

Nicht erzeugbare Typen sind speziell gekennzeichnet, um Instanzen zu verbieten. Sie könnten einen Typ missbrauchen, der nur als angehängter Typ oder als Schnittstelle verwendet werden sollte.

Beispiel

Missbräuchliche Verwendung eines angehängten Typs

import QtQuick

Item {
    Keys {
        onPressed: function (key) { ... }
    }
}

Um die Warnung zu beheben, verwenden Sie den Keys angehängten Typ, anstatt ihn zu instanziieren:

import QtQuick

Item {
    Keys.onPressed: function (key) { ... }
}

Missbrauch von Schnittstellen

import QtQuick

Item {
    property PointerHandler myHandler: PointerHandler {}
}

Um die Warnung zu beheben, verwenden Sie einen spezifischeren abgeleiteten Typ wie TapHandler:

import QtQuick

Item {
    property PointerHandler myHandler: TapHandler {}
}

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