Auf dieser Seite

Fehlende Eigenschaft

Diese Warnkategorie wird von qmllint [missing-property] geschrieben.

Kann nicht einer nicht existierenden Standardeigenschaft zugewiesen werden

Was ist passiert?

Sie haben ein Objekt einer nicht existierenden Standardeigenschaft zugewiesen.

Warum ist das schlecht?

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 wollen, oder, wenn Sie der Autor des Typs sind, markieren Sie 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 einen Ausdruck einer nicht existierenden Eigenschaft zugewiesen.

Warum ist das schlecht?

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

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
}

Member not found on type

Was ist passiert?

Sie haben auf einen Member in einem Field-Member-Ausdruck zugegriffen, der vom QML-Tooling nicht gefunden werden kann. Ein Field-Member-Ausdruck ist ein Ausdruck der Form someId.someProperty.

Es kann sein, dass der Member gar nicht existiert, z.B. wenn Sie einen Tippfehler gemacht haben. Oder er existiert zur Laufzeit (weil er auf einem bestimmten Subtyp existiert, der immer vorhanden ist), aber nicht auf dem statisch deklarierten Typ.

Warum ist das schlecht?

Die QML-Werkzeuge können dieses Mitglied nicht finden, was bedeutet, dass Funktionen wie Go-to-Definition und Autovervollständigung nicht funktionieren. Zur Laufzeit kann es zu einer Fehlermeldung kommen oder Sie erhalten ein falsches Ergebnis, wenn der Member tatsächlich nicht existiert. Es wird kein Fehler auftreten, wenn das Element zur Laufzeit tatsächlich immer vorhanden ist, allerdings kann es in diesem Fall zu Leistungseinbußen aufgrund von verpassten Optimierungen kommen.

Beispiel

Eigenschaft existiert nicht wirklich

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 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 einen genaueren 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 currentItem -Eigenschaft von messageView Item , die keine sender -Eigenschaft hat: sender ist nur in Message definiert. Hier wissen wir jedoch, dass currentItem immer ein Message enthält, so dass wir currentItem mit Hilfe einer Typprüfung auf Message übertragen 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.