Eigenschaftsüberschreibung
Diese Warnkategorie wird von qmllint als „ [property-override] “ bezeichnet.
Das Member überschreibt nichts
Was ist passiert?
Sie haben eine Eigenschaft als „ override “ markiert, ohne etwas zu überschreiben. Der Basistyp der aktuellen Komponente verfügt über keine gleichnamige Eigenschaft, die als „ virtual “ markiert ist.
Warum ist das ein Problem?
Die QML-Engine löst einen Laufzeitfehler aus, wenn sie auf eine solche Eigenschaft stößt.
Beispiel
import QtQuick
Item {
component Base: Item { virtual property int myProperty; }
Base {
override property int myP: 42
}
}Um diese Warnung zu beheben, können Sie:
- Entfernen Sie die Markierung „
override“. - Überprüfen Sie noch einmal, ob der Eigenschaftsname mit dem Namen einer „
virtual“- oder „override“-Eigenschaft im Basistyp der aktuellen Komponente übereinstimmt.
import QtQuick
Item {
component Base: Item { virtual property int myProperty; }
Base {
property int myP: 42 // solution 1: remove override
override property int myProperty: 42 // solution 2: fix spelling
}
}Mitglied überschreibt finales Mitglied
Was ist passiert?
Sie haben eine Eigenschaft überschattet, die als „final“ gekennzeichnet ist.
Warum ist das ein Problem?
Eigenschaften werden als „final“ markiert, um ein Überschreiben und Überschatten zu verhindern. Die QML-Engine löst einen Laufzeitfehler aus, wenn sie auf die überschattende Eigenschaft stößt.
Beispiel
import QtQuick
Item {
component Base: Item { final property int myFinal; }
Base {
property int myFinal: 42
}
}Um diese Warnung zu beheben, haben Sie folgende Möglichkeiten:
- Benennen Sie die überschreibende oder überschriebene Eigenschaft um.
- Ersetzen Sie die Markierung „
final“ durch „virtual“ oder „override“ und fügen Sie der überschreibenden Eigenschaft das fehlende „override“ hinzu.
import QtQuick
Item {
// solution 1: rename the property
component Base: Item { final property int myFinal; }
Base {
property int myFinal2: 42
}
// solution 2: replace the final marker and add override
component Base2: Item { virtual property int myFinal; }
Base2 {
override property int myFinal: 42
}
}Mitglied überschreibt finales Mitglied
Was ist passiert?
Sie haben eine Eigenschaft überschrieben, die als „final“ gekennzeichnet ist.
Warum ist das schlecht?
Als „ final “ gekennzeichnete Eigenschaften verhindern das Überschreiben und das Überschatten. Die QML-Engine löst einen Laufzeitfehler aus, wenn sie auf die überschreibende Eigenschaft stößt.
Beispiel
import QtQuick
Item {
component Base: Item { final property int myFinal; }
Base {
override property int myFinal: 42
}
}Um diese Warnung zu beheben, haben Sie folgende Möglichkeiten:
- Benennen Sie die überschattende oder überschattete Eigenschaft um und entfernen Sie die Markierung „
override“. - Ersetzen Sie die Markierung „
final“ durch „virtual“ der überschriebenen Eigenschaft.
import QtQuick
Item {
// solution 1: remove override and rename
component Base: Item { final property int myFinal; }
Base {
property int myFinal2: 42
}
// solution 2: replace final marker with virtual
component Base2: Item { virtual property int myFinal; }
Base2 {
override property int myFinal: 42
}
}Mitglied überschattet Mitglied
Was ist passiert?
Sie haben eine „ virtual “- oder „ override “-Eigenschaft überschattet, ohne „ final “ oder „ override “ zu verwenden.
Warum ist das schlecht?
Eigenschaften, die „ virtual “-Eigenschaften überschatten, benötigen eine Markierung wie „ override “ oder „ final “. Die QML-Engine gibt eine Laufzeitwarnung aus, wenn sie auf eine solche Eigenschaft stößt.
Beispiel
import QtQuick
Item {
component Base: Item { virtual property int myProperty; }
Base {
property int myProperty: 42
}
}Um diese Warnung zu beheben, machen Sie die überschattende Eigenschaft zu „ override “ oder „ final “.
import QtQuick
Item {
component Base: Item { virtual property int myProperty; }
Base {
override property int myProperty: 42 // could also be final
}
}Ein Mitglied überschreibt ein nicht-virtuelles Mitglied
Was ist passiert?
Sie haben eine Eigenschaft überschrieben, die nicht als „ virtual “ oder „ override “ gekennzeichnet war.
Warum ist das ein Problem?
Eigenschaften, die überschrieben werden können, müssen dies über „ virtual “ oder „ override “ deklarieren. Die QML-Engine löst einen Laufzeitfehler aus, wenn sie auf die überschriebene Eigenschaft stößt, bei der die Markierung „ virtual “ oder „ override “ fehlt.
Beispiel
import QtQuick
Item {
component Base: Item { property int myProperty; }
Base {
override property int myProperty: 42
}
}Um diese Warnung zu beheben, benennen Sie die überschreibende Eigenschaft um oder kennzeichnen Sie die überschriebene Eigenschaft als „ virtual “ oder „ override “.
import QtQuick
Item {
component Base: Item { virtual property int myProperty; }
Base {
override property int myProperty: 42
}
}Eigenschaft existiert bereits im Basistyp
Was ist passiert?
Sie haben eine Eigenschaft überschrieben, ohne „ virtual “, „ override “ oder „ final “ zu verwenden.
Warum ist das schlecht?
Eigenschaften, die überschrieben werden können, müssen über „ virtual “ oder „ override “ deklariert werden. Die QML-Engine gibt zur Laufzeit eine Warnung aus, wenn sie auf die überschriebene Eigenschaft stößt.
Beispiel
import QtQuick
Item {
component Base: Item { property int myProperty; }
Base {
property int myProperty: 42
}
}Um diese Warnung zu beheben, benennen Sie die überschreibende oder überschriebene Eigenschaft um oder fügen Sie die fehlenden Markierungen virtual, override oder final hinzu.
import QtQuick
Item {
// solution 1: rename one of the properties
component Base: Item { property int myProperty; }
Base {
property int myProperty2: 42
}
// solution 2: add missing markers
component Base2: Item { virtual property int myProperty; }
Base2 {
final property int myProperty: 42 // could also be override
}
}© 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.