因此,需要在QString(文本表示)和枚举类型之间进行转换,以满足这一需求。 2. 展示如何在Qt中将QString转换为枚举 由于枚举类型本质上是整型,直接通过QString转换为枚举并不直接支持,但可以通过映射表(如QMap或QHash)来实现。以下是一个简单的示例: cpp #include <QString> #include <QMap> enum ...
2 QMetaEnum metaEnum = QMetaEnum::fromType<Cenum::Priority>();3 qDebug()<< metaEnum.valueToKey(Cenum::VeryHigh); //! enum转string 4 qDebug()<< metaEnum.keysToValue("VeryHigh"); //!string转enum 3、输出结果 ...
Enum::Fruit fruit = (Enum::Fruit)fruitType;//Enum本身还是数值型的,所以只需要直接强制类型转换即可。但是我没有试过枚举不存在的值强制转换成枚举会是什么 值转枚举项的字符(Value to key) int to QString #include <QMetaEnum> int fruitType = 0; QMetaEnum meta = QMetaEnum::fromType<Enum::Fru...
//预留区间 CLOSE = 0x0100, TIME_OUT = 0x0200 }; Q_ENUM(ErrorCode) }; using ErrorCode = CustomEmun::ErrorCode; template<class E> std::string toString(E e) { std::string string; QMetaEnum
1、 enum <-> int 1 enumColor { Red, White, Blue};Color c = (Color)1;//c=Whiteint i = Red; //i=0 2、 enum <-> string 1 enumColor { Red, White, Blue}; 1 QString s ="White"; 1 intidx = mo.indexOfEnumerator("Color"); ...
constchar*QMetaEnum::valueToKey(int value)const 输入:value为枚举值; 输出: 枚举的字符串形式(没有找到枚举值返回空字符串)。 3 字符串转枚举 接口: 代码语言:javascript 代码运行次数:0 运行 AI代码解释 int QMetaEnum::keyToValue(constchar*key,bool*ok=nullptr)const ...
将枚举 ButtonState 注册到元对象系统 }; QMetaEnum metaState = QMetaEnum::fromType<PushButton::ButtonState>(); QString str = metaState.valueToKey(PushButton::Hover); // 4、枚举转字符串 bool isOk = false; ButtonState state = metaState.keyToValue("Hover", &isOk); // 5、字符串转...
<string>12</string> </property> </widget> </item> <itemrow="0"column="2"rowspan="2"> <spacername="horizontalSpacer"> <propertyname="orientation"> <enum>Qt::Horizontal</enum> </property> <propertyname="sizeHint"stdset="0">
将QString类转为char类型的字符串需要考虑中文的支持。 1. 不包含中文的转换方式 QString str("123456789"); char* ch; QByteArray by = str.toLatin1(); ch=by.data(); qDebug()<<ch; 以上方法当QString里不含中文时,没有问题,但是QString内含有中文时,转换为char*就不正确。
前言 之前做一个比较大工程,核心数据里面有很多是枚举变量,需要频繁地使用枚举量到字符串和字符串到枚举量的操作,为了实现这些操作,我把每个枚举类型后面都附加了两个类似Enum_to_String()和String_to_Enum()的函数,程序显得很臃肿。这时候就非常羡慕C#或者java等兄弟