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

QT枚举类型转字符串和使用QDebug<<重载输出私有枚举类型

一 将QT自带的枚举类型转换为QString

需要的头文件:

#include <QMetaObject>
#include <QMetaEnum>

 测试代码

   const QMetaObject *metaObject = &QImage::staticMetaObject;QMetaEnum metaEnum = metaObject->enumerator(metaObject->indexOfEnumerator("Format"));QString formatString = metaEnum.valueToKey(image1.format());qDebug() << "formatString = " << formatString;

测试输出的结果:

formatString =  "Format_Mono" 

 二 通过qdebug<<重载自己的私有枚举

1 修改类

添加自己的枚举类型和枚举类型转字符串函数:

class MainWindow : public QMainWindow
{Q_OBJECTpublic:MainWindow(QWidget *parent = nullptr);~MainWindow();enum myenum{MY_ENUM_ONE,MY_ENUM_TWO,};static QString toString(myenum value) {switch (value) {case MY_ENUM_ONE: return "MY_ENUM_ONE";case MY_ENUM_TWO: return "MY_ENUM_TWO";default: return "Unknown";}}
}

2 添加QDebug的<<新的重载方法

然后,为 QDebug 类提供一个重载的 operator<<() 方法:

// 为 QDebug 提供重载的 operator<<,用于输出 MainWindow::myenum 类型的值
QDebug operator<<(QDebug debug, MainWindow::myenum value) {QDebugStateSaver saver(debug); // 保存 QDebug 的当前状态debug.nospace() << MainWindow::toString(value); // 输出枚举值的字符串表示return debug;
}

3 添加测试代码

在构造函数中添加测试代码:

    enum myenum one = myenum::MY_ENUM_ONE;qDebug() << one;

4 测试结果:

三 将私有枚举转字符串

这样就可以了

    static QString toString(myenum value) {switch (value) {case MY_ENUM_ONE: return "MY_ENUM_ONE";case MY_ENUM_TWO: return "MY_ENUM_TWO";default: return "Unknown";}}

小结

相关文章:

QT枚举类型转字符串和使用QDebug<<重载输出私有枚举类型

一 将QT自带的枚举类型转换为QString 需要的头文件&#xff1a; #include <QMetaObject> #include <QMetaEnum> 测试代码 const QMetaObject *metaObject &QImage::staticMetaObject;QMetaEnum metaEnum metaObject->enumerator(metaObject->indexOf…...

手机柔性屏全贴合视觉应用

在高科技日新月异的今天&#xff0c;手机柔性显示屏作为智能手机市场的新宠&#xff0c;以其独特的可弯曲、轻薄及高耐用性特性引领着行业潮流。然而&#xff0c;在利用贴合机加工这些先进显示屏的过程中&#xff0c;仍面临着诸多技术挑战。其中&#xff0c;高精度对位、应力控…...

《Python游戏编程入门》注-第3章3

《Python游戏编程入门》的“3.2.4 Mad Lib”中介绍了一个名为“Mad Lib”游戏的编写方法。 1 游戏玩法 “Mad Lib”游戏由玩家根据提示输入一些信息&#xff0c;例如男人姓名、女人姓名、喜欢的食物以及太空船的名字等。游戏根据玩家输入的信息编写出一个故事&#xff0c;如图…...

Netty-TCP服务端粘包、拆包问题(两种格式)

前言 最近公司搞了个小业务&#xff0c;需要使用TCP协议&#xff0c;我这边负责服务端。客户端是某个设备&#xff0c;客户端传参格式、包头包尾等都是固定的&#xff0c;不可改变&#xff0c;而且还有个蓝牙传感器&#xff0c;透传数据到这个设备&#xff0c;然后通过这个设备…...

centos安装指定版本的jenkins

打开jenkins镜像包官网&#xff0c;找到自己想要安装的版本&#xff0c;官网地址&#xff1a;https://mirrors.tuna.tsinghua.edu.cn/jenkins/redhat-stable 下载指定版本安装包&#xff1a; wget https://mirrors.tuna.tsinghua.edu.cn/jenkins/redhat-stable/jenkins-2.452.…...

QT 周期性的杀死一个进程(软件),一分钟后自动退出

1.原因&#xff1a;某软件开机自启动很烦&#xff0c;搞一个程序干掉这个自启动的软件 2.QT代码 main.cpp #include "KillXXX.h" #include <QtWidgets/QApplication>int main(int argc, char *argv[]) {QApplication a(argc, argv);KillXXX k;return a.exec…...

MySQL任意版本安装卸载和数据库原理图绘制

MYSQL任意版本安装和卸载 安装&#xff1a; 1、解压文件 --- 不能出现中文路径 2、在解压目录&#xff08;安装目录&#xff09;下&#xff1a; 1>.创建data文件夹 2>.创建配置文件my.txt 然后修改成ini格式 3、修改配置文件 basedirD:\\mysql\\mysql-5.7.28-winx64…...

技术成神之路:设计模式(二十三)解释器模式

相关文章&#xff1a;技术成神之路&#xff1a;二十三种设计模式(导航页) 介绍 解释器模式&#xff08;Interpreter Pattern&#xff09;是一种行为设计模式&#xff0c;用于定义一种语言的文法表示&#xff0c;并提供一个解释器来处理这种文法。它用于处理具有特定语法或表达…...

2024软考《软件设计师》-Python专题知识(含历年真题解析)

自2020年之后&#xff0c;软考软件设计师考试在综合知识部分开始增加Python编程语言相关考点&#xff0c;每年会考2~3分的样子。本文将结合近几年常考的内容&#xff0c;扩展一下Pyhton的基础知识&#xff01;考前看一看&#xff0c;或许有所帮助。 一、基础语法 标识符 第一…...

基于大数据 Python+Vue 旅游推荐可视化系统(源码+LW+部署讲解+数据库+ppt)

&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01; 会持续一直更新下去 有问必答 一键收藏关注不迷路 源码获取&#xff1a;https://pan.baidu.com/s/1aRpOv3f2sdtVYOogQjb8jg?pwdjf1d 提取码: jf1d &#…...

使用虚拟机搭建环境:CentOS7 Docker、MySQL、Redis 安装与配置

创作灵感 项目实践总结&#xff1a;记录了在虚拟机中安装与配置CentOS7环境下的Docker、MySQL、Redis的全过程&#xff0c;帮助理解和应用各项技术。技术笔记与问题总结&#xff1a;详细梳理了每一步安装的关键点与常见问题&#xff0c;并给出了解决方案。职业感悟与心得&…...

[分享] Docker容器可视化管理工具 - WGCLOUD

WGCLOUD是新一代运维监测平台&#xff0c;它可以监控Docker容器的各种性能数据&#xff0c;比如内存&#xff0c;cpu&#xff0c;Image&#xff0c;运行时间&#xff0c;运行状态&#xff0c;端口映射等信息 WGCLOUD也支持在页面启动&#xff0c;重启&#xff0c;停止Docker容…...

保存网页中 canvas 的内容

在开发人员工具中,保存网页中 canvas 的内容,可以用这个方法: 1. 在 dom 中创建一个下载按钮 <button id="save">保存</button>2. 控制台中运行: const gCanvas = document.querySelector(#page_1);function onSave() {gCanvas.toBlob((blob) =&g…...

PID控制原理

PID控制原理 PID控制器是一种经典且广泛应用于工业控制领域的反馈控制器&#xff0c;它由比例&#xff08;P&#xff09;、积分&#xff08;I&#xff09;和微分&#xff08;D&#xff09;三个部分组成。通过对这三个部分的综合调节&#xff0c;PID控制器能够实现对被控对象的…...

python 使用 企微机器人发送消息

import requestswecom_bot_webhook ""msg_text "" # 要发送的消息内容""" mentioned_mobile_list : 手机号列表 , 提醒手机号对应的群成员(某个成员) """ res requests.post(wecom_bot_webhook,json{"msgtype"…...

ARM/Linux嵌入式面经(五二):华为

文章目录 一面技术面相关问题1. **硬件改进的具体内容是什么?**硬件改进的具体内容深入询问及回答2. **在维护前任师兄的代码时,你遇到了哪些挑战?**问题回答面试官追问及回答3. **在嵌入式系统中,内存泄漏通常有哪些原因?**一、内存泄漏的主要原因二、内存泄漏的具体场景…...

[旧日谈]高清画面撕裂问题考

背景 无边框透明背景透明的窗口&#xff0c;在随着缩放比例非整数倍数放大时的画面发生了露底、撕裂问题。 当我们在使用Qt开发的时候&#xff0c;遇到了一个结构性问题。因为我们的软件是自己做的&#xff0c;所以要自己定义标题栏&#xff0c;所以我们设置了软件为FrameLess…...

Nginx反向代理-域名代理前后端项目部署流程

一、下载Nginx 地址&#xff1a;https://nginx.org/en/download.html 1、稳定版本下载 二、Nginx配置 1、下载文件完成后&#xff0c;解压文件 2、打开文件目录下conf目录&#xff0c;打开找到nginx.conf 3、文件配置 注意&#xff1a;.conf 文件使用文本编辑器编辑后&…...

代码随想录(十二)——图论

并查集 并查集主要有三个功能。 寻找根节点&#xff0c;函数&#xff1a;find(int u)&#xff0c;也就是判断这个节点的祖先节点是哪个将两个节点接入到同一个集合&#xff0c;函数&#xff1a;join(int u, int v)&#xff0c;将两个节点连在同一个根节点上判断两个节点是否在…...

如何通过 Service Mesh 构建高效、安全的微服务系统

1. 引言 1.1.什么是 Service Mesh&#xff1f; Service Mesh 是一种基础架构层&#xff0c;负责处理微服务之间的通信&#xff0c;它通过在每个服务旁边部署代理&#xff08;通常称为 Sidecar&#xff09;来捕获和管理服务间的网络流量。这种方式解耦了微服务的业务逻辑和基础…...

100+ RPG Maker MV/MZ插件:零代码打造专业级游戏体验的完整指南

100 RPG Maker MV/MZ插件&#xff1a;零代码打造专业级游戏体验的完整指南 【免费下载链接】RPGMakerMV RPGツクールMV、MZで動作するプラグインです。 项目地址: https://gitcode.com/gh_mirrors/rp/RPGMakerMV 你是否曾梦想用RPG Maker制作出媲美商业游戏的视觉效果和…...

2026.5.11:2026年5月TIOBE指数

2026年5月TIOBE指数 2026年5月TIOBE指数 五月头条:统计编程语言市场正在经历重大整合 本月,R 编程语言在 TIOBE 指数中再次攀升至第八位,追平了历史最高排名。这并非偶然。统计编程语言市场显然正在经历一场重大整合。Python 和 R 成为最大的赢家,而许多老牌语言则持续失去…...

B站视频下载终极教程:3步获取无水印高清视频

B站视频下载终极教程&#xff1a;3步获取无水印高清视频 【免费下载链接】BiliDownload B站视频下载工具 项目地址: https://gitcode.com/gh_mirrors/bil/BiliDownload 想要下载B站视频却苦于找不到合适的工具&#xff1f;BiliDownload是你的最佳选择&#xff01;这款基…...

如何一站式破解Widevine DRM加密视频:智能解密工具完全指南

如何一站式破解Widevine DRM加密视频&#xff1a;智能解密工具完全指南 【免费下载链接】video_decrypter Decrypt video from a streaming site with MPEG-DASH Widevine DRM encryption. 项目地址: https://gitcode.com/gh_mirrors/vi/video_decrypter 还在为付费视频…...

APP加固后审核被拒怎么办?iOS上架失败紧急解决流程与性能排查

花了大量心血开发的应用&#xff0c;提交到App Store后&#xff0c;等来的不是上架成功的邮件&#xff0c;而是一封来自苹果的审核拒绝信&#xff0c;理由还是“元数据被拒”或“二进制文件被拒”。更让人崩溃的是&#xff0c;排查下来&#xff0c;问题很可能指向刚做的iOS应用…...

2026年5月11日|60秒读懂世界:国乒双冠、微信组合支付、公积金新政与科技突破速览

&#x1f525;个人主页&#xff1a;杨利杰YJlio❄️个人专栏&#xff1a;《Sysinternals实战教程》《Windows PowerShell 实战》《WINDOWS教程》《IOS教程》《微信助手》《锤子助手》 《Python》 《Kali Linux》 《那些年未解决的Windows疑难杂症》&#x1f31f; 让复杂的事情更…...

ClawX:桌面化AI Agent编排平台,降低OpenClaw使用门槛

1. 项目概述&#xff1a;ClawX&#xff0c;为OpenClaw AI Agent打造的桌面门户如果你和我一样&#xff0c;对AI Agent&#xff08;智能体&#xff09;的潜力感到兴奋&#xff0c;但又对在终端里敲命令、编辑YAML配置文件、管理进程这些繁琐操作感到头疼&#xff0c;那么ClawX的…...

别再用Excel硬扛了!SPSS数据视图和变量视图保姆级上手指南

别再用Excel硬扛了&#xff01;SPSS数据视图和变量视图保姆级上手指南 第一次打开SPSS时&#xff0c;很多从Excel转过来的用户会愣住——这个界面怎么既熟悉又陌生&#xff1f;左边明明也是表格&#xff0c;但为什么右键菜单里找不到"设置单元格格式"&#xff1f;右上…...

PyTorch数据集加载进阶:深入torchvision源码,定制你的CIFAR10本地路径

PyTorch数据集加载进阶&#xff1a;深入torchvision源码&#xff0c;定制你的CIFAR10本地路径 当你在PyTorch项目中反复下载CIFAR10数据集时&#xff0c;是否曾想过——为什么每次都要从远程服务器拉取数据&#xff1f;那些隐藏在torchvision.datasets模块背后的加载逻辑&#…...

线性码电路优化:从理论到硬件实现

1. 线性码与电路合成基础线性码在数字通信和存储系统中扮演着至关重要的角色&#xff0c;它通过在原始数据中添加冗余信息来实现错误检测和纠正。这种编码方式的核心数学原理基于有限域上的线性代数运算&#xff0c;使得编码和解码过程可以通过高效的矩阵运算实现。在硬件实现层…...