• Qt 枚举类型 值、字符串、枚举类型互转


    图不重要,随便找的图

    枚举类型

    class Enum : public QObject{
        Q_OBJECT
        public:
            enum Fruit{
                APPLE = 0,
                BANANA,
                POTATO
            }
            Q_ENUM(Fruit);//向Qt注册此枚举文件,若有多个枚举,则在对应枚举下注册即可,如下
    
            enum Vagetables{
                TOMATO,//默认初值从零起
                ONION,
                POTATO
            }
            Q_ENUM(Vagetables);//嗯
    }
    

    值转枚举 int to Enum

    int fruitType = 0;
    Enum::Fruit fruit = (Enum::Fruit)fruitType;//Enum本身还是数值型的,所以只需要直接强制类型转换即可。但是我没有试过枚举不存在的值强制转换成枚举会是什么
    

    值转枚举项的字符(Value to key) int to QString

    #include <QMetaEnum>
    
    int fruitType = 0;
    QMetaEnum meta = QMetaEnum::fromType<Enum::Fruit>();
    QString itemKey = meta.valueToKey(fruitType);
    

    字符串转枚举值,结果为数字(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";
    QMetaEnum meta = QMetaEnum::fromType<Enum::Fruit>();
    Enum::Fruit fruitItem = (Enum::Fruit)meta.keyToValue(fruit.toStdString().data());//入参是char *
    

    枚举转字符串,Enum to QString

    Enum::Fruit fruit = Fruit::POTATO;
    QMetaEnum meta = QMetaEnum::fromType<Enum::Fruit>();
    QString fruitStr = meta.valueToKey(fruit);
    
  • 相关阅读:
    序一
    Python3 网络爬虫开发实战
    爬虫笔记
    celery
    用yield实现协程 和asyncio模块
    Django学习之完成数据库主从复制、读写分离和一主多从情况下的使用办法
    Django学习之缓存和信号
    Django学习之Django-debug-toobar
    Python面向对象
    Python中 if __name__ == "__main__" 的理解
  • 原文地址:https://www.cnblogs.com/echo-lovely/p/15922845.html
Copyright © 2020-2023  润新知