このページでは

C

enumeration QML Value Type

名前付き列挙値。詳細...

詳細な説明

enumeration 型は、名前付き列挙値を指します。

各名前付き値は、<Type>.<value> として参照できます。たとえば、Text 型には、AlignRight という列挙値があります:

Text { horizontalAlignment: Text.AlignRight }

C++ と統合する際、C++ から QML に渡される `enum ` 値は自動的に `enumeration ` 値に変換され、その逆も同様であることに注意してください。

この基本型は QML 言語によって提供されます。一部の列挙値は、QtQuick インポートによって提供されます。

QML での列挙型の使用

enumeration 型は、C++のenum 型の表現です。QML自体でenumeration 型を参照することも可能ですが、QMLコードからenumeration の値を参照する際は、int 型を使用する必要があります。

例:

import QtQuick 2.15

Item {
    // refer to Text.AlignRight using an int type
    property int enumValue: textItem.horizontalAlignment

    signal valueEmitted(int someValue)

    Text {
        id: textItem
        horizontalAlignment: Text.AlignRight
    }

    // emit valueEmitted() signal, which expects an int, with Text.AlignRight
    Component.onCompleted: valueEmitted(Text.AlignRight)
}

同じ列挙子を持つ列挙型の定義

場合によっては、同じ列挙子を持つ複数の列挙型が必要になることがあります:

Item {
    enum DeviceUnits {
        Unknown,
        Metric,
        Imperial
    }

    enum AppUnits {
        Unknown,
        Metric,
        Imperial
    }
}

上記で示したような同一の列挙子を使用する方法は、Qt Quick Ultraliteではサポートされていませんが、同様の結果を得るための方法はいくつかあります。

  • 列挙子には適切な接頭辞を使用してください:
    Item {
        enum DeviceUnits {
            D_Unknown,
            D_Metric,
            D_Imperial
        }
    
        enum AppUnits {
            A_Unknown,
            A_Metric,
            A_Imperial
        }
    }
  • 同じQMLファイル内でのみ列挙型を使用する場合は、それらを名前付きインラインコンポーネントで囲んでください:
    Item {
        component D : QtObject {
            enum DeviceUnits {
                Unknown,
                Metric,
                Imperial
            }
        }
    
        component A : QtObject {
            enum AppUnits {
                Unknown,
                Metric,
                Imperial
            }
        }
    }
  • あるいは、列挙型ごとに個別のQMLファイルを作成してください:
    // DeviceUnits.qml
    QtObject {
        enum DeviceUnits {
            Unknown,
            Metric,
            Imperial
        }
    }
    // AppUnits.qml
    QtObject {
        enum AppUnits {
            Unknown,
            Metric,
            Imperial
        }
    }

QMLの基本型」、「プロパティ型としてのenum型」、および「QMLオブジェクト - 列挙型属性も参照してください

特定のQtライセンスの下で利用可能です。
詳細はこちらをご覧ください。