制限タイプ

この警告カテゴリーはqmllintによって[restricted-type]

ここからスコープされていない列挙型にアクセスすることはできません。

何が起こったのでしょうか?

C++で定義されたenumの値にenum型名でアクセスしました。

これはなぜ悪いのでしょうか?

C++で定義されたスコープされていない列挙型は、その列挙型名ではアクセスできません。それらは実行時に未定義になります。

import QtQuick
import SomeModule // contains MyClass

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

ここでMyClassは

class MyClass: public QObject
{
    Q_OBJECT
    QML_ELEMENT

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

};

この警告を修正するには、QML の使用法から不要な列挙型名を削除してください:

import QtQuick

Item {
    property int i: MyClass.World
}

もしあなたが列挙型の作者であれば、QML のコードを変更する代わりに、列挙型の定義を変更して列挙型クラスを使用することもできます:

class MyClass: public QObject
{
    Q_OBJECT
    QML_ELEMENT

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

Note: enum 型の登録についての詳細は、こちらを参照してください。

本ドキュメントに含まれる文書の著作権は、それぞれの所有者に帰属します。 ここで提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。