网站推广的软文,网站建设需要哪些网络技术,韩城网站建设韩城网站推广,关键词网站建设推广Part1: Summary
项目中我们常用到命名#xff0c;使用 enum 转成 string #xff0c;方便简洁#xff1b;Qt给我们提供了一个很方便的功能 Q_ENUM#xff0c;可以实现枚举字符串互转#xff1b;
Q_ENUM宏将枚举注册到元对象系统中#xff1b; QMetaEnum::fromType获取枚…Part1: Summary
项目中我们常用到命名使用 enum 转成 string 方便简洁Qt给我们提供了一个很方便的功能 Q_ENUM可以实现枚举字符串互转
Q_ENUM宏将枚举注册到元对象系统中 QMetaEnum::fromType获取枚举的 QMetaEnum对象 valueToKey或 keyToValue进行转换操作
下面我们看一下具体应用
public:enum DisplayPart{Head 100,Hand,Neck,Leg};Q_ENUM(DisplayPart);
Part2: enum to string QMetaEnum metaPart QMetaEnum::fromTypeDisplayPart();qDebug()show :metaPart.valueToKey(Head);
输出show : Head
Part3: string to enum QMetaEnum metaPart QMetaEnum::fromTypeDisplayPart();qDebug()show :metaPart.keyToValue(Head);
输出show : 100
Part3 使用模板 template typename Tstatic T strToEnm(QString str){QMetaEnum metaEnm QMetaEnum::fromTypeT();return (T)metaEnm.keyToValue(str.toStdString().data());}template typename Tstatic QString enmToStr(T value){QMetaEnum metaEnm QMetaEnum::fromTypeT();return metaEnm.valueToKey(value);}
Part4: Test enum to string
qDebug()show :enmToStrDisplayPart(Head);
输出show : Head DisplayPart part strToEnmDisplayPart(Head);qDebug()show :(int)part;
输出show : 100