码迷,mamicode.com
首页 > 编程语言 > 详细

QT中enum和QString的互相转换。

时间:2017-04-03 16:12:30      阅读:917      评论:0      收藏:0      [点我收藏+]

标签:引入   bsp   meta   qt5   src   字符   val   rom   public   

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的互相转换。

标签:引入   bsp   meta   qt5   src   字符   val   rom   public   

原文地址:http://www.cnblogs.com/fanfan1108/p/6662062.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!