Utilisation d'une fonction appropriée
Cette catégorie d'avertissement est orthographiée « [use-proper-function] » par qmllint.
La propriété est une propriété de type « variant » : elle peut être ou non une méthode
Que s’est-il passé ?
Vous avez utilisé une propriété de type « var » comme s’il s’agissait d’une fonction appelable.
Pourquoi est-ce un problème ?
Cela nuit à la lisibilité du code ; le moteur QML générera une erreur si la propriété ne contient pas de fonction appelable, et les outils QML ne pourront pas appliquer certaines optimisations spécifiques aux méthodes.
Exemple
import QtQuick
Item {
property var fun: () => console.log("Hello")
Component.onCompleted: { fun(); }
}Pour corriger cet avertissement, déclarez ` fun ` comme une fonction afin de pouvoir l'appeler :
import QtQuick
Item {
function fun() {
console.log("Hello")
}
Component.onCompleted: { fun(); }
}La propriété est une propriété QJSValue : elle peut être ou non une méthode
Que s'est-il passé ?
Vous avez utilisé une propriété de type QJSValue comme s'il s'agissait d'une fonction appelable.
Remarque : les propriétés de type QJSValue ne peuvent être définies qu’en C++.
Pourquoi est-ce un problème ?
Cette propriété n'était très probablement pas destinée à être appelée et provoquera une erreur du moteur QML lors de l'exécution.
Exemple
import QtQuick
Rectangle {
// Rectangle has a property gradient of the type QJSValue
Component.onCompleted: { console.log(gradient()); }
}Pour corriger cet avertissement, supprimez l’appel à ` gradient` :
import QtQuick
Item {
// Rectangle has a property gradient of the type QJSValue
Component.onCompleted: { console.log(gradient); }
}Sinon, envisagez de remplacer la définition de la propriété par une méthode « Q_INVOKABLE » classique ou par un slot si vous êtes l'auteur de la propriété. Cela n'est possible que si la fonction n'est jamais censée être modifiée en QML. Si vous avez réellement besoin de stocker un callback, vous n'avez pas de chance.
Le signal est masqué par une propriété
Que s’est-il passé ?
Vous avez appelé un signal masqué par une propriété ou vous avez masqué un signal avec une propriété.
Pourquoi est-ce un problème ?
L'appelant s'attendait très probablement à appeler un signal, et non la propriété qui le masque. Cela pourrait provoquer une erreur du moteur QML lors de l'exécution.
Exemple
import QtQuick
Item {
component Base: Item {
signal helloSignal
}
Base {
property int helloSignal // shadows helloSignal inherited from Base
Component.onCompleted: { helloSignal(); }
}
}Pour corriger cet avertissement, renommez la propriété qui masque le signal :
import QtQuick
Item {
component Base: Item {
signal helloSignal
}
Base {
property int helloSignal2 // does not shadow anymore
Component.onCompleted: { helloSignal(); }
}
}Une méthode est masquée par une propriété
Voir {Un signal est masqué par une propriété}.
Le slot est masqué par une propriété
Voir {Le signal est masqué par une propriété}.
La propriété n'est pas une méthode
Que s'est-il passé ?
Vous avez utilisé une propriété d'un type autre que var ou QJSValue comme s'il s'agissait d'une fonction appelable.
Pourquoi est-ce un problème ?
La propriété ne peut pas être appelée et provoquera une erreur du moteur QML lors de l’exécution.
Exemple
Pour corriger cet avertissement, supprimez l’appel ou transformez ` hello ` en fonction :
import QtQuick
Item {
property int hello
Component.onCompleted: { console.log(hello); }
// alternative:
function helloAlternative() { ... }
Component.onCompleted: { console.log(helloAlternative()); }
}© 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.