Sur cette page

Type restreint

Cette catégorie d'avertissement a été orthographiée [restricted-type] par qmllint.

Vous ne pouvez pas accéder à un enum non couvert à partir d'ici.

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

Vous avez accédé à la valeur d'un enum défini en C++ par son nom de type enum.

Pourquoi est-ce mauvais ?

On ne peut pas accéder à un enum défini en C++ par son nom de type enum. Ils seront indéfinis à l'exécution.

Exemple

import QtQuick
import SomeModule // contains MyClass

Item {
    property int i: MyClass.Hello.World
}

où MyClass est défini comme

class MyClass: public QObject
{
    Q_OBJECT
    QML_ELEMENT

public:
    enum Hello { World };
    Q_ENUM(Hello);
    ...

};

Pour corriger cet avertissement, supprimez le nom inutile du type d'enum de son utilisation QML :

import QtQuick

Item {
    property int i: MyClass.World
}

Si vous êtes l'auteur de l'enum, vous pouvez également modifier la définition de l'enum pour utiliser une classe d'enum au lieu de modifier le code QML :

class MyClass: public QObject
{
    Q_OBJECT
    QML_ELEMENT

public:
    enum class Hello { World };
    Q_ENUM(Hello);
    ...
};

Note : Vous pouvez trouver plus d'informations sur l'enregistrement des types d'enum ici.

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