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);
Qt 枚举类型 值、字符串、枚举类型互转的更多相关文章
- 枚举类型与字符串ConvertEnumToString
枚举类型与字符串添加字典互转ConvertEnumToString using UnityEngine; using System.Collections; using UnityEngine.UI; ...
- QT枚举类型与字符串类型相互转换
在QT中将枚举类型注册(QT_Q_ENUM或QT_Q_FLAG)后,就可以利用QT的元对象进行枚举类型与字符串类型转换了. 代码示例: #include <QtCore/QMetaEnum> ...
- { MySQL基础数据类型}一 介绍 二 数值类型 三 日期类型 四 字符串类型 五 枚举类型与集合类型
MySQL基础数据类型 阅读目录 一 介绍 二 数值类型 三 日期类型 四 字符串类型 五 枚举类型与集合类型 一 介绍 存储引擎决定了表的类型,而表内存放的数据也要有不同的类型,每种数据类型都有自己 ...
- swift_枚举 | 可为空类型 | 枚举关联值 | 枚举递归 | 树的概念
***************可为空的类型 var demo2 :we_demo = nil 上面这个代码串的语法是错的 为什么呢, 在Swift中,所有的类型定义出来的属性的默认值都不可以是nil ...
- MySQL字符编码、存储引擎、严格模式、字段类型之浮点 字符串 枚举与集合 日期类型
目录 字符编码与配置文件 数据路储存引擎 创建表的完整语法 字段类型之整型 严格模式 字段类型之浮点型 字段类型之字符串类型 数字的含义 字段类型之枚举与集合 字段类型之日期类型 字符编码与配置文件 ...
- Typescript使用字符串联合类型代替枚举类型
TypeScript宗旨 我觉得Typescript的宗旨是 任何一个 TypeScript 程序,在手动删去类型部分,将后缀改成 .js 后,都应能够正常运行.Typescript是javascri ...
- 枚举类型与位域枚举Enum
一.概述 定义一个值类型,其中包含固定值集合.枚举类型变量可以是此集合中的任意一个或多个值.枚举使用enum关键字来声明,与类同级.枚举本身可以有修饰符,但枚举的成员始终是公共的,不能有访问修饰符.枚 ...
- 03.枚举和string以及int类型之间的转换
练习1: 将枚举类型强转成int类型 namespace _04.枚举类型的练习01 { //声明一个QQState类型的枚举 public enum QQState { OnLine, OffL ...
- TypeScript - 类型声明、枚举、函数、接口
目录 可定义的类型 类型声明 枚举 函数 接口 可定义的类型 以下所写的并不代表typescript的数据类型,而是在使用过程中可以用作定义的类型 number : 数值类型: string ...
- 实体类的枚举属性--原来支持枚举类型这么简单,没有EF5.0也可以
通常,我们都是在业务层和界面层使用枚举类型,这能够为我们编程带来便利,但在数据访问层,不使用枚举类型,因为很多数据库都不支持,比如我们现在用的SqlServer2008就不支持枚举类型的列,用的时候也 ...
随机推荐
- 中电资讯-乘风破浪数字经济,银行如何Hold数据?
近期各类规划密集发布人行金融科技发展规划发布 金融标准化"十四五"规划发布 "十四五"信息化规划发布 -- 和数据应用有关的各项政策密集出炉 数字经济发展中如何 ...
- TypeScript 源码详细解读(2)词法1-字符处理
本节文章研究的代码位于 tsc/src/compiler/scanner.ts 字符 任何源码都是由很多字符组成的,这些字符可以是字母.数字.空格.符号.汉字等-- 每一个字符都有一个编码值,比如字符 ...
- 如何使用Jet家软件进行学习(intellij、idea、IDEA、Pycharm……)
如何使用Jet家软件进行学习 本文档提供方法只用于学习研究,不得用于其他用途 以下,萌狼蓝天将会提供两种方式 目录 如何使用Jet家软件进行学习 第一种方式:使用EAP版本 第二种方式:使用插件 (1 ...
- SpringBoot重点详解--使用Actuator进行健康监控
目录 添加依赖与配置 Actuator监控项 Actuator监控管理 打开或关闭 端口与地址 Actuator是Springboot提供的用来对应用系统进行自省和监控的功能模块,借助于Actuato ...
- 微信小游戏直播在Android端的跨进程渲染推流实践
本文由微信开发团队工程师"virwu"分享. 1.引言 近期,微信小游戏支持了视频号一键开播,将微信升级到最新版本,打开腾讯系小游戏(如跳一跳.欢乐斗地主等),在右上角菜单就可以看 ...
- Windows 配置自动更新重启策略
I. 打开策略编辑器 [Win + R]打开 "运行" 窗口,输入: gpedit.msc 打开"本地组策略编辑器". II. 设置不自动重启 启用策略,选择在 ...
- blast只保留一个最优结果
使用blast比对时,只保留一个最优结果 代码: blastn -db nt.blast.db -query seq.fa -out blast.nt.result -evalue 1e-5 -out ...
- linux安装软件配置
CentOS7更换yum为阿里源 1 备份本地源mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backu ...
- CRT优化RSA
转载:利用中国剩余定理加速 RSA RSA 作为世界上使用最为流行的公钥密码算法,被广泛应用在数据加密和数字签名上. 为了提高加密和签名验证的效率,一般会将RSA的加密指数(一般是公钥位数)设置的较小 ...
- C 2017笔试题
1.下面程序的输出结果是 int x=3; do { printf("%d\n",x-=2); }while(!(--x)); 输出:1 -2 解析:x初始值为3,第一次循环中运行 ...