Sur cette page

Les Enums ne sont pas des types

Cette catégorie d'avertissement est orthographiée [enums-are-not-types] par qmllint.

Les énumérations QML ne sont pas des types

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

Vous avez utilisé un nom d'énumération à l'intérieur d'une annotation de type.

Pourquoi est-ce mauvais ?

Un nom d'énumération n'est pas un type et ne peut donc pas être utilisé dans une annotation de type. L'outil QML n'est pas capable d'utiliser l'annotation de type : le compilateur ne peut pas compiler cette méthode en C++ et qmllint ainsi que QML Language Server ne peuvent pas analyser cette méthode.

Exemple

// Main.qml
import QtQuick

Item {
    enum HelloWorld { Hello, World }
    function f(e: Main.HelloWorld): bool {
        return e == World
    }
}

Pour corriger cet avertissement, remplacez le nom de l'enum dans l'annotation de type par le type sous-jacent, comme int si le type sous-jacent nécessite au plus 32 bits, ou sinon double, par exemple.

import QtQuick

Item {
    enum HelloWorld { Hello, World }
    function f(e: int): bool {
        return e === World
    }
}

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