Qt:QMetaEnum类

1059 篇文章 284 订阅

QMetaEnum类提供有关枚举器的元数据。

头文件:

#include <QMetaEnum>

cmake:

find_package(Qt6 COMPONENTS Core REQUIRED)
target_link_libraries(mytarget PRIVATE Qt6::Core)

qmake:

QT += core

详细说明

使用name()作为枚举器的名称。枚举器的键(每个枚举项的名称)由key()返回;使用keyCount()查找键的数目。isFlag()返回枚举数是否要用作标志,这意味着可以使用OR运算符组合其值。

转换函数keyToValue()、valueToKey()、keysToValue()和valueToKeys()允许在枚举或集合值的整数表示形式与其文字表示形式之间进行转换。函数的作用域是:返回枚举器声明的类作用域。

成员函数

enumName

[since 5.12]const char *QMetaEnum::enumName() const

返回标志的枚举名称(无作用域)。

比如:Qt :: AlignmentFlag标志具有AlignmentFlag作为枚举名称,但Alignment作为类型名称。非标记枚举具有相同的类型和枚举名称。

枚举名称与类型名称具有相同的作用域。

此功能在Qt 5.12中引入。

另请参见isValid()name()

fromType

[static, since 5.5]
template <typename T> QMetaEnum
QMetaEnum::fromType()

返回与template参数中的类型相对应的QMetaEnum。枚举需要用Q_ENUM声明。

此功能是在Qt 5.5中引入的。

isFlag

bool QMetaEnum::isFlag() const

如果此枚举数用作标志,则返回true;否则返回false。

当用作标志时,可以使用OR运算符组合枚举数。

另请参见keysToValue()和valueToKeys()。

isScoped

bool QMetaEnum::isScoped() const

如果此枚举器被声明为C++ 11枚举类,则返回true,否则返回false。
这个函数是在qt5.8中引入的。

isValid

bool QMetaEnum::isValid() const

如果此枚举有效(具有名称),则返回true;否则返回false。

另请参见name()

key

const char *QMetaEnum::key(int index) const

返回具有给定索引的键,如果不存在此类键,则返回nullptr。

另请参见keyCount(), value(), valueToKey().

keyCount

int QMetaEnum::keyCount() const

返回键的数目。

keyToValue

int QMetaEnum::keyToValue(const char *key, bool *ok = nullptr) const

返回给定枚举键的整数值,如果未定义键,则返回-1。

如果未定义键,*ok设置为false;否则,*ok设置为true。

对于标志类型,请使用keysToValue()。

keysToValue

int QMetaEnum::keysToValue(const char *keys, bool *ok = nullptr) const

返回通过使用OR运算符将键的值组合在一起而派生的值,如果未定义键,则返回-1。请注意,键中的字符串必须以“|”分隔。

如果未定义键,*ok设置为false;否则,*ok设置为true。

name

const char *QMetaEnum::name() const

返回类型的名称(不带范围)。

例如,Qt::Key枚举将Key作为类型名,Qt作为作用域。

对于标志,它返回标志类型的名称,而不是枚举类型的名称。

另请参见isValid(), scope(), enumName().

scope

const char *QMetaEnum::scope() const

返回此枚举数在其中声明的范围。

例如,Qt::AlignmentFlag枚举的作用域是Qt,名称是AlignmentFlag。

另请参见name()

value

int QMetaEnum::value(int index) const

返回具有给定索引的值;如果没有此类值,则返回-1。

另请参见keyCount(), key(), keyToValue().

valueToKey

const char *QMetaEnum::valueToKey(int value) const

返回用作给定枚举值名称的字符串,如果未定义值,则返回nullptr。

对于标志类型,请使用valueToKeys()。

valueToKeys

const char *QMetaEnum::valueToKey(int value) const

返回表示给定值的由“|”分隔键组成的字节数组。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值