当前位置: 首页 > news >正文

QT 如何实现enum与字符串的互转

将enum中定义的枚举值,以字符串的形式写入文件,同时也能从字符串转为枚举值。举例说明:
ColorSelector中的Colors枚举,我们希望 kColorRed 这个写入到本地文件时,可以直接保存“kColorRed”,而非kColorRed对应的值(100)。但是从本地文件读取到“kColorRed”时,可以转换为对应的值(100)。

头文件

#ifndef ENUMCLASS_H
#define ENUMCLASS_H#include <QObject>class ColorSelector : public QObject
{Q_OBJECT
public://enum Colors{kColorRed=100,kColorGreen,kColorBlue,kColorGray,kColorBlack,kColorPink,kColorBrown,kColorOrange,kColorDark,};Q_ENUM(Colors);public:explicit ColorSelector(QObject *parent = nullptr);void output();
signals:};#endif // ENUMCLASS_H

cpp文件

#include "enumclass.h"
#include <QMetaEnum>
#include <QDebug>ColorSelector::ColorSelector(QObject *parent) : QObject(parent)
{}void ColorSelector::output()
{QMetaEnum metaEnum;metaEnum = QMetaEnum::fromType<Colors>();int val = metaEnum.keyToValue("kColorBlack");qDebug() << "val=" << val;Colors clr = static_cast<Colors>(metaEnum.keyToValue("kColorBrown"));qDebug() << "clr=" << clr;QString key = metaEnum.valueToKey(clr);qDebug() << "key=" << key;QString key2 = metaEnum.valueToKey(kColorOrange);qDebug() << "key2=" << key2;qDebug() << "count=" << metaEnum.keyCount();
}

测试代码:

int main(int argc, char *argv[])
{QCoreApplication a(argc, argv);ColorSelector cls;cls.output();return 0;
}
http://www.dtcms.com/a/314887.html

相关文章:

  • Java基础学习(一):类名规范、返回值、注释、数据类型
  • 【QT】安装与配置
  • 应急响应复现
  • Java 课程,每天解读一个简单Java之正整数分解质因数
  • 字符集选择utf8mb4
  • android内存作假通杀补丁(4GB作假8GB)
  • 自动寻迹小车介绍、原理及应用场景
  • GoLand 项目从 0 到 1:第四天 —— 技术选型落地与方案设计
  • onnxruntime配置开启ACL加速Arm上的模型推理
  • 《Python 实用项目与工具制作指南》· 3.2 实战·开发密码管理器
  • 【教学类-52-17】20250803动物数独_空格尽量分散_只有一半关卡数(N宫格通用版3-10宫格)0图、1图、2图、6图、有答案、无答案 组合版24套
  • JavaScript 中的流程控制语句详解
  • JS-第二十天-事件(二)
  • 股票的涨跌原理
  • Flink从Kafka读取数据的完整指南
  • ref和reactive的区别
  • 图的存储方式-邻接表
  • 燃气末端天然气加臭剂四氢噻吩监测方案
  • lwIP 代码解析:sys_arch.c
  • 从 0 到 1 构建高质量微调数据集:大模型落地的基石
  • 单向链表练习
  • Linux Shell:常用命令汇总
  • 邻近标记技术:研究蛋白互作的利器(一)
  • 论文Review LIO Multi-session Voxel-SLAM | 港大MARS出品!体素+平面特征的激光SLAM!经典必读!
  • 简要探讨大型语言模型(LLMs)的发展历史
  • 每天学一个Linux命令(38):vi/vim
  • 决策树(回归树)全解析:原理、实践与应用
  • Excel商业智能分析报表 【销售管理分析仪】
  • 编译 Paddle 遇到 flashattnv3 段错误问题解决
  • PostgreSQL——表的基本操作