QT中enum和QString的互相转换。

Posted 帆帆1108

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了QT中enum和QString的互相转换。相关的知识,希望对你有一定的参考价值。

1、使用Q_ENUM宏注册(注意:1、必须继承QObject, 2、在QT5.5版本引入)

 

#include <QObject>
class Cenum: public QObject
{
    Q_OBJECT
public:
    Cenum() {}
    
    enum Priority
    { 
        High, 
        Low,
        VeryHigh, 
        VeryLow 
    };
    Q_ENUM(Priority)
};

2、使用QMetaEnum对象转换

1      qDebug()<<Cenum::High<<"\\t"<<Cenum::Low;                     //!qDebug可以直接打印出枚举类值的字符串名称
2      QMetaEnum metaEnum = QMetaEnum::fromType<Cenum::Priority>();
3      qDebug()<<  metaEnum.valueToKey(Cenum::VeryHigh);            //! enum转string
4      qDebug()<<  metaEnum.keysToValue("VeryHigh");                //!string转enum

3、输出结果

 

以上是关于QT中enum和QString的互相转换。的主要内容,如果未能解决你的问题,请参考以下文章

QT下 enum转QString

在Qt中如何将QString转换为const char*

Qt5 QString转换成char *乱码问题

如何将QString转换为char *或者相反

wchar_t到QString的转换方法?

Qt QString 和 LPCWSTR 的相互转换