Auf dieser Seite

Fehlende Eigenschaft

Diese Warnkategorie wird von qmllint als „ [missing-property] “ bezeichnet.

Zuweisung an nicht vorhandene Standard-Eigenschaft nicht möglich

Was ist passiert?

Sie haben ein Objekt einer nicht vorhandenen Standard-Eigenschaft zugewiesen.

Warum ist das ein Problem?

Die QML-Engine kann dieses Objekt zur Laufzeit nicht zuweisen.

Beispiel

import QtQuick

Item {
    component MyType: QtObject { property Item myItem; }

    MyType {
        Item {}
    }
}

Um diese Warnung zu beheben, geben Sie die Eigenschaft an, an die Sie binden möchten, oder kennzeichnen Sie – falls Sie der Autor des Typs sind – eine Eigenschaft als Standard:

import QtQuick

Item {
    component MyType: QtObject { property Item myItem; }

    MyType {
        myItem: Item {}
    }

    component AlternativeMyType: QtObject { default property Item myItem; }

    AlternativeMyType {
        Item {} // bound to myItem via default property
    }
}

Eigenschaft existiert nicht

Was ist passiert?

Sie haben einer nicht vorhandenen Eigenschaft einen Ausdruck zugewiesen.

Warum ist das ein Problem?

Die QML-Engine kann diesen Ausdruck zur Laufzeit nicht zuweisen.

Beispiel

import QtQuick

Item {
    property int myInt
    myItn: 42
}

Um diese Warnung zu beheben, entfernen Sie die Bindung oder korrigieren Sie einen möglichen Tippfehler:

import QtQuick

Item {
    property int myInt
    myInt: 42
}

Mitglied im Typ nicht gefunden

Was ist passiert?

Sie haben in einem Feldmitgliedsausdruck auf ein Mitglied zugegriffen, das von den QML-Tools nicht gefunden werden kann. Ein Feldmitgliedsausdruck ist ein Ausdruck der Form „ someId.someProperty “.

Das Element existiert möglicherweise gar nicht, beispielsweise wenn Sie einen Tippfehler gemacht haben. Oder es existiert zur Laufzeit (da es in einem bestimmten Untertyp vorhanden ist, der immer vorhanden ist), aber nicht im statisch deklarierten Typ.

Warum ist das ein Problem?

Die QML-Tools können dieses Member nicht finden, was bedeutet, dass Funktionen wie „Zur Definition springen“ und die Autovervollständigung nicht funktionieren. Zur Laufzeit kann es zu einem Fehler kommen oder du erhältst ein falsches Ergebnis, wenn das Element tatsächlich nicht existiert. Es tritt kein Fehler auf, wenn das Element zur Laufzeit tatsächlich immer vorhanden ist; in diesem Fall kann es jedoch aufgrund verpasster Optimierungen zu Leistungseinbußen kommen.

Beispiel

Die Eigenschaft existiert tatsächlich nicht

import QtQuick

Item {
    id: self
    property int myInt
    property int myInt2: 1 + self.myItn
}

Um diese Warnung zu beheben, entfernen Sie die Bindung oder korrigieren Sie einen möglichen Tippfehler:

import QtQuick

Item {
    id: self
    property int myInt
    property int myInt2: 1 + self.myInt
}

Eigenschaft existiert, aber der Typ ist nicht präzise genug

import QtQuick
import QtQuick.Controls.Basic

Item {
  component Message : Item {
    required property string sender
    required property string text
  }
  ListView {
    id: messageView
    delegate: Message {}
  }

  Button {
    text: "Reply to %1".arg(messageView.currentItem.sender) // not ok
  }
}

Um diese Warnung zu beheben, wandeln Sie das Objekt, aus dem Sie lesen, in den spezifischeren Typ um:

import QtQuick
import QtQuick.Controls.Basic

Item {
  component Message : Item {
    required property string sender
    required property string text
  }
  ListView {
    id: messageView
    delegate: Message {}
  }

  Button {
    text: "Reply to %1".arg((messageView.currentItem as Message).sender) // now ok
  }
}

Im Beispiel ist der deklarierte Typ der Eigenschaft „ currentItem “ von „ messageView “ „ Item “, die keine Eigenschaft „ sender “ besitzt: „ sender “ ist nur in „ Message “ definiert. Hier wissen wir jedoch, dass „ currentItem “ immer einen „ Message “ enthält, sodass wir „ currentItem “ mithilfe einer Typüberprüfung in „ Message “ umwandeln können.

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