Inkompatibler Typ

Diese Warnkategorie wird von qmllint mit [incompatible-type] angegeben.

Kann der Standardeigenschaft eines inkompatiblen Typs nicht zugewiesen werden

Was ist passiert?

Sie haben ein Objekt einer Standardeigenschaft eines inkompatiblen Typs zugewiesen.

Warum ist das schlecht?

Die QML-Engine ist nicht in der Lage, das Objekt zur Laufzeit zuzuweisen.

Beispiel

import QtQuick

Item {
    component MyType: QtObject {
        default property list<Item> myDefaultProperty
    }

    MyType {
        QtObject {} // note: QtObject does not inherit from Item
    }
}

Um diese Warnung zu beheben, binden Sie einen kompatiblen Typ an die Eigenschaft oder, wenn Sie der Autor der Standardeigenschaft sind, ändern Sie den Typ in der Definition:

import QtQuick

Item {
    component MyType: QtObject {
        default property list<Item> myDefaultProperty
    }

    MyType {
        Item {}
    }

    component AlternativeMyType: QtObject {
        default property list<QtObject> myDefaultProperty
    }

    AlternativeMyType {
        QtObject {} // is ok for AlternativeMyType
    }
}

On-binding für Eigenschaft hat falschen Typ

Was ist passiert?

Sie haben einen ungültigen Eigenschaftsmodifikator-Typ verwendet.

Warum ist das schlecht?

Die QML-Engine ist nicht in der Lage, den Typ des Eigenschaftsmodifikators zur Laufzeit zu verwenden.

Beispiel

import QtQuick

Item {
    property int xxx
    Item on xxx { ... }
}

Um diese Warnung zu beheben, entfernen Sie die on oder verwenden Sie einen gültigen Eigenschaftsmodifikator-Typ:

import QtQuick

Item {
    property int xxx
    Item { ... }

    // Alternative: use a valid property modifier type
    NumberAnimation on xxx { ... }
}

Construction from string is deprecated; Use structured value type construction instead

Was ist passiert?

Sie haben eine QML_STRUCTURED_VALUE mit einer Zeichenkette konstruiert.

Warum ist das schlecht?

Dies ist veraltet und anfällig für Tippfehler.

Beispiel

import QtQuick

Item {
    property point p: "5, 6"
}

Um diese Warnung zu beheben, füllen Sie den Typ des strukturierten Werts wie in der Beschreibung von QML_STRUCTURED_VALUE erläutert auf, anstatt eine Zeichenfolge an die Eigenschaft zu binden:

import QtQuick

Item {
    property point p: ({ x: 5, y: 6 })
}

Funktion ohne Rückgabetyp-Annotation gibt zurück

Was ist passiert?

Sie haben einen Wert aus einer Funktion ohne Rückgabetyp-Annotation zurückgegeben.

Warum ist das schlecht?

Sie haben die Funktion so beschriftet, dass sie nichts zurückgibt, also sollte die Funktion auch nichts zurückgeben. Das QML-Tooling wird die Methode nicht verarbeiten können und die QML-Engine wird den zurückgegebenen Wert in einer zukünftigen Qt-Version ignorieren.

Beispiel

import QtQuick

Item {
    function f(x: int) {
        ...
        return x
    }
}

Um diese Warnung zu beheben, passen Sie die Funktionssignatur an den neuen Rückgabetyp an oder entfernen Sie den Rückgabewert:

import QtQuick

Item {
    function f(x: int): int {
        ...
        return x
    }
    function alternativeF(x: int) {
        ...
        return
    }
}

Kann Bindung/Objekt/Literal nicht zuweisen

Was ist passiert?

Sie haben ein Objekt, ein Literal oder einen Ausdruck an eine Eigenschaft eines inkompatiblen Typs gebunden.

Warum ist das schlecht?

Die QML-Engine ist nicht in der Lage, das Objekt, das Literal oder den Ausdruck zur Laufzeit zuzuweisen.

Beispiel

import QtQuick

Item {
    property date xxx: 42
}

Um diese Warnung zu beheben, binden Sie ein Objekt, einen Wert oder einen Ausdruck eines kompatiblen Typs:

import QtQuick

Item {
    property date xxx: new Date()
}

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