Sur cette page

Type incompatible

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

Impossible d'assigner une propriété par défaut d'un type incompatible

Qu'est-ce qui s'est passé ?

Vous avez assigné un objet à une propriété par défaut d'un type incompatible.

Pourquoi est-ce mauvais ?

Le moteur QML ne pourra pas assigner l'objet au moment 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 corriger 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
    }
}

On-binding for property has wrong type

Qu'est-ce qui s'est passé ?

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

Pourquoi est-ce mauvais ?

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

Exemple

import QtQuick

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

Pour corriger cet avertissement, supprimez le site on 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 un QML_STRUCTURED_VALUE à l'aide d'une chaîne de caractères.

Pourquoi est-ce mauvais ?

Cette méthode est dépréciée et sujette aux fautes de frappe.

Exemple

import QtQuick

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

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

import QtQuick

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

Fonction sans annotation de type de retour

Qu'est-ce qui s'est passé ?

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

Pourquoi est-ce mauvais ?

Vous avez annoté la fonction pour qu'elle ne renvoie rien, donc la fonction ne doit rien renvoyer. L'outil QML ne pourra 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
    }
}

Cannot assign binding/object/literal (Impossible d'assigner une liaison/un objet/un littéral)

Qu'est-ce qui s'est passé ?

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

Pourquoi est-ce mauvais ?

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

Exemple

import QtQuick

Item {
    property date xxx: 42
}

Pour corriger cet avertissement, liez un objet, une valeur ou une expression d'un 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.