Sur cette page

Type incompatible

Cette catégorie d'avertissement est orthographiée « [incompatible-type] » par qmllint.

Impossible d’affecter une valeur à une propriété par défaut de type incompatible

Que s'est-il passé ?

Vous avez attribué un objet à une propriété par défaut de type incompatible.

Pourquoi est-ce un problème ?

Le moteur QML ne pourra pas affecter l'objet lors de l'exécution.

Exemple

import QtQuick

Item {
    component MyType: QtObject {
        default property list<Item> myDefaultProperty
    }

    MyType {
        QtObject {} // note: QtObject does not inherit from Item
    }
}

Pour résoudre cet avertissement, liez un type compatible à la propriété ou, si vous êtes l'auteur de la propriété par défaut, modifiez le type dans la définition :

import QtQuick

Item {
    component MyType: QtObject {
        default property list<Item> myDefaultProperty
    }

    MyType {
        Item {}
    }

    component AlternativeMyType: QtObject {
        default property list<QtObject> myDefaultProperty
    }

    AlternativeMyType {
        QtObject {} // is ok for AlternativeMyType
    }
}

Le type de la liaison de la propriété est incorrect

Que s'est-il passé ?

Vous avez utilisé un type de modificateur de propriété non valide.

Pourquoi est-ce un problème ?

Le moteur QML ne pourra pas utiliser le type du modificateur de propriété lors de l'exécution.

Exemple

import QtQuick

Item {
    property int xxx
    Item on xxx { ... }
}

Pour corriger cet avertissement, supprimez l'on e ou utilisez un type de modificateur de propriété valide :

import QtQuick

Item {
    property int xxx
    Item { ... }

    // Alternative: use a valid property modifier type
    NumberAnimation on xxx { ... }
}

La construction à partir d'une chaîne de caractères est obsolète ; utilisez plutôt la construction à partir d'un type de valeur structuré

Que s'est-il passé ?

Vous avez construit une « QML_STRUCTURED_VALUE » à l'aide d'une chaîne de caractères.

Pourquoi est-ce un problème ?

Cette méthode est obsolète et source d'erreurs de frappe.

Exemple

import QtQuick

Item {
    property point p: "5, 6"
}

Pour corriger cet avertissement, renseignez le type de valeur structuré comme expliqué dans la description de l'QML_STRUCTURED_VALUE, au lieu d'associer une chaîne de caractères à la propriété :

import QtQuick

Item {
    property point p: ({ x: 5, y: 6 })
}

Une fonction sans annotation de type de retour renvoie une valeur

Que s’est-il passé ?

Vous avez renvoyé une valeur à partir d’une fonction sans annotation de type de retour.

Pourquoi est-ce un problème ?

Vous avez indiqué que la fonction ne devait rien renvoyer ; elle ne doit donc rien renvoyer. Les outils Qml ne pourront pas traiter la méthode et le moteur Qml ignorera la valeur renvoyée dans une future version de Qt.

Exemple

import QtQuick

Item {
    function f(x: int) {
        ...
        return x
    }
}

Pour corriger cet avertissement, adaptez la signature de la fonction au nouveau type de retour ou supprimez la valeur de retour :

import QtQuick

Item {
    function f(x: int): int {
        ...
        return x
    }
    function alternativeF(x: int) {
        ...
        return
    }
}

Impossible d'affecter une liaison/un objet/un littéral

Que s'est-il passé ?

Vous avez lié un objet, un littéral ou une expression à une propriété de type incompatible.

Pourquoi est-ce un problème ?

Le moteur QML ne pourra pas affecter l'objet, le littéral ou l'expression lors de l'exécution.

Exemple

import QtQuick

Item {
    property date xxx: 42
}

Pour corriger cet avertissement, liez un objet, une valeur ou une expression de type compatible :

import QtQuick

Item {
    property date xxx: new Date()
}

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