字符串转枚举值,结果为数字(Key to Value) QString to Enum QString fruit = "POTATO"; QMetaEnum meta = QMetaEnum::fromType<Enum::Fruit>(); int value = meta.keyToValue(fruit.toStdString().data());//入参是char * 字符串转枚举类型,结果为枚举,QString to Enum QString fruit = "POTATO...
constchar*QMetaEnum::valueToKey(int value)const 输入:value为枚举值; 输出: 枚举的字符串形式(没有找到枚举值返回空字符串)。 3 字符串转枚举 接口: 代码语言:javascript 复制 int QMetaEnum::keyToValue(constchar*key,bool*ok=nullptr)const 输入:key为枚举字符串; 输出: 返回值为枚举值,ok值为是否转...
而如果对于QT程序而言,我们其实有一套更方便的字符串到枚举类型的转换方法。 介绍 QT中实现字符串和枚举的转换主要是利用Qt的元对象机制。因此必须有2点要求: 类必须继承于QObject并使用Q_OBJECT宏; 类内添加枚举,使用Q_ENUM宏将枚举注册到元对象系统中; 示例代码 customenum.h class CustomEmun : public QObje...
在QT中将枚举类型注册(QT_Q_ENUM或QT_Q_FLAG)后,就可以利用QT的元对象进行枚举类型与字符串类型转换了。 代码示例: #include <QtCore/QMetaEnum>intmain() { QMetaEnum metaEnum = QMetaEnum::fromType<Qt::Alignment>();//字符串转枚举值 Qt::Alignment alignment = (Qt::Alignment)metaEnum.keyToVal...
首先,使用Q_ENUM宏声明枚举类,以便QT能够自动为该枚举类添加qt_getEnumMetaObject和qt_getEnumName两个友元函数。在customenum.h中,可以定义模板方法来实现字符串到枚举的转换,如fromType函数。在使用时,通过调用fromType函数,系统会根据枚举类型是否被Q_ENUM声明进行判断。如果声明了,则系统会通过qt_...
3. 字符串转枚举 可以通过ok的值来判断是否正确转换。 代码语言:javascript 复制 intkeyToValue(constchar*key,bool*ok=nullptr)const 例: 代码语言:javascript 复制 QMetaEnum metaEnum=QMetaEnum::fromType<Object::WeekDay>();bool isOk=false;Object::WeekDay weekDay=(Object::WeekDay)metaEnum.keyToValu...
// 枚举转字符串 const char *QMetaEnum::valueToKey(int value) const // 字符串转枚举 int QMetaEnum::keyToValue(const char *key, bool *ok = Q_NULLPTR) const 示例: class PushButton : QPushButton // 1、继承QObject { Q_OBJECT // 2、使用Q_OBJECT宏 public: PushButton(QWidget *parent...
classQString;template<classKey,classT>classQMap;classEnumMapContainer:publicQObject{Q_OBJECTpublic:EnumMapContainer();~EnumMapContainer();boolGetEnumValue(constQString&enumStr,int&enumValue);private:QMap<QString,int>*m_enumMap;//[枚举值字符串-枚举值]voidConfigL4NodeMap();public:enumL3NodeType{...
meta = metaObject();//根据属性名称Sex,查找m_sex属性对象QMetaPropertystaticint propindex = meta->indexOfProperty("sex");staticconstQMetaProperty mp = meta->property(propindex);//QMetaProperty中的方法enumerator可以将字符串转化成枚举值//如果给定的字符串不与任何枚举值匹配,则返回-1QMetaEnum ...
-枚举值可以是整型、字符型或字符串型。 二、Qt枚举值转换为枚举类型的方法 在Qt中,要将枚举值转换为对应的枚举类型,可以使用以下两种方法: 1.使用static_cast static_cast是C++提供的一种类型转换运算符,可以将一个表达式的类型转换为另一个类型。对于枚举类型,我们可以使用static_cast将整数值转换为对应的枚举类...