valueToKey(enumValue); } int main(int argc, char *argv[]) { QCoreApplication a(argc, argv); DisplayPart::Type part = DisplayPart::Head; QString partStr = enumToString(part); qDebug() << "Enum to String:" << partStr; // 输出: Enum to String: Head return a....
之前做一个比较大工程,核心数据里面有很多是枚举变量,需要频繁地使用枚举量到字符串和字符串到枚举量的操作,为了实现这些操作,我把每个枚举类型后面都附加了两个类似Enum_to_String()和String_to_Enum()的函数,程序显得很臃肿。这时候就非常羡慕C#或者java等兄弟语言,内核内置了枚举量和字符串转换的方法。 最近读Qt...
Q_ENUM(Priority) }; 2、使用QMetaEnum对象转换 1qDebug()<<Cenum::High<<"\t"<<Cenum::Low;//!qDebug可以直接打印出枚举类值的字符串名称2QMetaEnum metaEnum = QMetaEnum::fromType<Cenum::Priority>();3qDebug()<< metaEnum.valueToKey(Cenum::VeryHigh);//! enum转string4qDebug()<< met...
QMetaEnum meta = QMetaEnum::fromType<E>(); string = meta.valueToKey(e); template<typename T> static QMetaEnum fromType() { Q_STATIC_ASSERT_X(QtPrivate::IsQEnumHelper<T>::Value, "QMetaEnum::fromType only works with enums declared as " "Q_ENUM, Q_ENUM_NS, Q_FLAG or Q_FLAG...
2 QMetaEnum metaEnum = QMetaEnum::fromType<Cenum::Priority>();3 qDebug()<< metaEnum.valueToKey(Cenum::VeryHigh); //! enum转string 4 qDebug()<< metaEnum.keysToValue("VeryHigh"); //!string转enum 3、输出结果 ...
(ButtonState) // 3、使用Q_ENUM宏将枚举 ButtonState 注册到元对象系统 }; QMetaEnum metaState = QMetaEnum::fromType<PushButton::ButtonState>(); QString str = metaState.valueToKey(PushButton::Hover); // 4、枚举转字符串 bool isOk = false; ButtonState state = metaState.keyToValue("...
或keyToValue进行转换操作。 2 枚举转字符串 接口: 代码语言:javascript 代码运行次数:0 运行 AI代码解释 constchar*QMetaEnum::valueToKey(int value)const 输入:value为枚举值; 输出: 枚举的字符串形式(没有找到枚举值返回空字符串)。 3 字符串转枚举 ...
Enum::Fruit fruit = (Enum::Fruit)fruitType;//Enum本⾝还是数值型的,所以只需要直接强制类型转换即可。但是我没有试过枚举不存在的值强制转换成枚举会是什么值转枚举项的字符(Value to key) int to QString #include <QMetaEnum> int fruitType = 0;QMetaEnum meta = QMetaEnum::fromType<Enum::...
enum SupportMethod { AutoInfer, onResponse_QNetworkReply_A_Pointer, /* method: void function(QNetworkReply* reply); Is_AutoInfer: true */ onResponse_QByteArray, /* method: void function(QByteArray data); Is_AutoInfer: true */ onResponse_QVariantMap, /* method: void function(QVariantMap ma...
Enum::Fruit fruit = (Enum::Fruit)fruitType;//Enum本身还是数值型的,所以只需要直接强制类型转换即可。但是我没有试过枚举不存在的值强制转换成枚举会是什么 值转枚举项的字符(Value to key) int to QString #include <QMetaEnum> int fruitType = 0; QMetaEnum meta = QMetaEnum::fromType<Enum::Fru...