Qt enum使用总结

1、enum 自省spa

const QMetaObject &mo = [ClassName]::staticMetaObject;
int index = mo.indexOfEnumerator("[EnumName]");
QMetaEnum me = mo.enumerator(index);

若 enum 定义在当前类中,则能够简写为blog

int index = staticMetaObject.indexOfEnumerator("[EnumName]");
QMetaEnum me = staticMetaObject.enumerator(index);

2、enum 转换ci

一、 enum <-> intstring

enum Color { Red, White, Blue};
Color c = (Color)1;   //c=White
int i = Red;       //i=0

二、 enum <-> stringit

enum Color { Red, White, Blue};
QString s = "White";
int idx = mo.indexOfEnumerator("Color");
QMetaEnum iEnum = mo.enumerator(idx);
int val = iEnum.keysToValue(s.toAscii());
Color c = (Color)val ;
相关文章
相关标签/搜索