C
枚举 QML 基本类型
一个命名枚举值。 更多信息...
枚举
类型指代一个命名的枚举值。
每个命名值都可以作为 <Type>.<value>
引用。例如,Text 类型拥有一个 AlignRight
枚举值
Text { horizontalAlignment: Text.AlignRight }
当与 C++ 集成时,注意从 C++ 传递到 QML 的任何 enum
值都会自动转换为 枚举
值,反之亦然。
此基本类型由 QML 语言提供。一些枚举值由 QtQuick 导入提供。
在 QML 中使用枚举类型
枚举
类型是 C++ enum
类型的表示。可以在 QML 中引用 枚举
类型;但相反,当从 QML 代码引用 枚举
值时,应当使用 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 文件中使用枚举,请将其包裹在命名的内联组件中
- 或者为每个枚举器创建一个独立的 qml 文件
// DeviceUnits.qml QtObject { enum DeviceUnits { Unknown, Metric, Imperial } }
// AppUnits.qml QtObject { enum AppUnits { Unknown, Metric, Imperial } }
另请参阅 QML 基本类型、枚举类型作为属性类型 以及 QML 对象 - 枚举属性。
在某些 Qt 许可证下提供。
了解更多。