Remplacement de propriété
Cette catégorie d'avertissement est orthographiée « [property-override] » par qmllint.
Le membre ne remplace rien
Que s'est-il passé ?
Vous avez marqué une propriété comme « override » sans rien redéfinir. Le type de base du composant actuel ne possède aucune propriété du même nom marquée comme « virtual ».
Pourquoi est-ce un problème ?
Le moteur QML génère une erreur d'exécution lorsqu'il rencontre une telle propriété.
Exemple
import QtQuick
Item {
component Base: Item { virtual property int myProperty; }
Base {
override property int myP: 42
}
}Pour corriger cet avertissement, vous pouvez :
- Supprimer le marqueur «
override». - Vérifier que le nom de la propriété correspond bien au nom d’une propriété «
virtual» ou «override» dans le type de base du composant actuel.
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
}
}Le membre « shadow » est un membre « final »
Que s'est-il passé ?
Vous avez masqué une propriété marquée comme « final ».
Pourquoi est-ce un problème ?
Les propriétés sont marquées comme « final » pour empêcher leur redéfinition et leur masquage. Le moteur QML génère une erreur d'exécution lorsqu'il rencontre la propriété masquée.
Exemple
import QtQuick
Item {
component Base: Item { final property int myFinal; }
Base {
property int myFinal: 42
}
}Pour corriger cet avertissement, vous pouvez :
- Renommer la propriété qui masque ou celle qui est masquée.
- Remplacer le marqueur «
final» par «virtual» ou «override» et ajouter l’overridee manquante à la propriété redéfinie.
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
}
}Un membre remplace un membre final
Que s’est-il passé ?
Vous avez redéfini une propriété marquée comme « final ».
Pourquoi est-ce un problème ?
Les propriétés marquées comme « final » empêchent toute redéfinition et tout masquage. Le moteur QML génère une erreur d'exécution lorsqu'il rencontre la propriété redéfinie.
Exemple
import QtQuick
Item {
component Base: Item { final property int myFinal; }
Base {
override property int myFinal: 42
}
}Pour corriger cet avertissement, vous pouvez :
- Renommer la propriété masquante ou masquée, puis supprimer le marqueur «
override». - Remplacer le marqueur «
final» par «virtual» de la propriété redéfinie.
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
}
}Membre masquant un membre
Que s'est-il passé ?
Vous avez masqué une propriété « virtual » ou « override » sans utiliser « final » ou « override ».
Pourquoi est-ce un problème ?
Les propriétés qui masquent des propriétés d’ virtual doivent être accompagnées d’un marqueur override ou final. Le moteur QML génère un avertissement d’exécution lorsqu’il rencontre une telle propriété.
Exemple
import QtQuick
Item {
component Base: Item { virtual property int myProperty; }
Base {
property int myProperty: 42
}
}Pour corriger cet avertissement, remplacez la propriété qui fait de l’ombre par override ou final.
import QtQuick
Item {
component Base: Item { virtual property int myProperty; }
Base {
override property int myProperty: 42 // could also be final
}
}Un membre redéfinit un membre non virtuel
Que s’est-il passé ?
Vous avez redéfini une propriété qui n'était pas marquée comme virtual ou override.
Pourquoi est-ce un problème ?
Les propriétés pouvant être redéfinies doivent être déclarées via « virtual » ou « override ». Le moteur QML génère une erreur d'exécution lorsqu'il rencontre une propriété redéfinie ne comportant pas le marqueur « virtual » ou « override ».
Exemple
import QtQuick
Item {
component Base: Item { property int myProperty; }
Base {
override property int myProperty: 42
}
}Pour corriger cet avertissement, renommez la propriété redéfinie ou marquez-la comme « virtual » ou « override ».
import QtQuick
Item {
component Base: Item { virtual property int myProperty; }
Base {
override property int myProperty: 42
}
}La propriété existe déjà dans le type de base
Que s’est-il passé ?
Vous avez masqué une propriété sans utiliser « as » virtual, override ou final.
Pourquoi est-ce un problème ?
Les propriétés pouvant être redéfinies doivent être déclarées via virtual ou override. Le moteur QML affiche un avertissement lors de l’exécution lorsqu’il rencontre la propriété masquée.
Exemple
import QtQuick
Item {
component Base: Item { property int myProperty; }
Base {
property int myProperty: 42
}
}Pour corriger cet avertissement, renommez la propriété masquante ou masquée, ou ajoutez les marqueurs manquants virtual, override ou final.
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.