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、輸出結果

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM