引言
QT 中枚举、字符串互转,定义方法、使用方法、注意事项说明
一、定义方法
//添加头文件 #include <QMetaEnum>
//添加#include <QObject>或者继承QObject类的其他类头文件
class A:public B//B 为QObject或QObject子类
{
Q_OBJECT
public:
explicit HFParseXml(QObject *parent = 0);
/*******************基类为QObject的子类成员**********************1*/
typedef enum
{
NO,
ID,
Name,
DataType,
Value,
Valid,
Remark,
}Rs422PassProperty_e;
Q_ENUM(Rs422PassProperty_e)
/*******************基类为QObject的子类成员**********************1*/
};
二、使用方法
const char* str = MetaEnum.valueToKey (NO);//枚举变量转换成字符串
Rs422PassProperty_e e = (HFParseXml::Rs422PassProperty_e)MetaEnum.keyToValue ("NO",nullptr);//字符串转换成枚举值
三、注意事项
枚举需要定义在基类为QObject的子类成员,否则会转换失败