Qt enum使用总结

一、enum 自省

const QMetaObject &mo = [ClassName]::staticMetaObject;
int index = mo.indexOfEnumerator("[EnumName]");
QMetaEnum me = mo.enumerator(index);

若 enum 定义在当前类中,则可以简写为

int index = staticMetaObject.indexOfEnumerator("[EnumName]");
QMetaEnum me = staticMetaObject.enumerator(index);

二、enum 转换

1、 enum <-> int

enum Color { Red, White, Blue};Color c = (Color)1;   //c=Whiteint i = Red;       //i=0

2、 enum <-> string

enum Color { Red, White, Blue};Color c = QString s = 

  

时间: 2024-08-23 07:25:38

Qt enum使用总结的相关文章

Qt的编程风格与规范

Qt的编程风格与规范 来源: http://blog.csdn.net/qq_35488967/article/details/70055490 参考资料: https://wiki.qt.io/Qt_Contribution_Guidelines https://wiki.qt.io/Qt_Coding_Style https://wiki.qt.io/Coding_Conventions https://community.kde.org/Policies/Library_Code_Poli

QT下 enum转QString

先在QT5.7 class EnumTest :public QObject { Q_OBJECT public: EnumTest(); enum PINYINENUM { XYDA, XYDB, XYDC, XYDD }; Q_ENUM(PINYINENUM) static QString getPinYin(int pinYinID); }; #include "enumtest.h" EnumTest::EnumTest() { } QString EnumTest::getP

QT中enum和QString的互相转换。

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<<&qu

微信打飞机升级版(Qt实现)

今天分享一个我用Qt改写的微信打飞机游戏,程序重在设计过程,运用了(抽象)工厂的模式产生不同的对象(子弹,敌军,炸弹...),逻辑处理相对简单,尚未解决的问题是怎么使用Qt实现各种声音的混音效果,这里使用QThread线程里面使用Sound类播放声音,但是效果不佳,如有好的解决方案,望回复指导,程序运行效果如下: 所有类的定义和游戏实现过程都在头文件playplane.h和源文件playplane.cpp中 playplane.h: #ifndef PLAYPLANE_H #define PLA

qt cef嵌入web

原文http://blog.sina.com.cn/s/blog_9e59cf590102vnfc.html 最近项目需要,研究了下libcef库. Cef(Chromium Embedded Framework)简述 嵌入式Chromium框架(简称CEF) 是一个由Marshall Greenblatt在2008建立的开源项目,它主要目的是开发一个基于Google Chromium的Webbrowser控件.CEF支持一系列的编程语言和操作系统,并且能很容易地整合到新的或已有的工程中去. 它

Understand the Qt containers(有对应表)

Container classes are one of the cornerstones of object-oriented programming, invaluable tools that free us from having to permanently think about memory management. Qt comes with its own set of container classes, closely modeled after those in the S

Qt之界面数据存储与获取(使用setUserData()和userData())

在GUI开发中,往往需要在界面中存储一些有用的数据,这些数据可以来配置文件.注册表.数据库.或者是server. 无论来自哪里,这些数据对于用户来说都是至关重要的,它们在交互过程中大部分都会被用到,例如:单击一个用户头像,显示该用户的详细信息(等级.昵称.姓名.个人说明). 简述 常见接口 数据源 setData和data 单独存储 整体存储 setItemData和itemData setUserData和userData 自定义数据 常见接口 Qt中,可以通过绝大部分已有的接口来存数数据.获

Qt仿Android带特效的数字时钟源码分析(滑动,翻页,旋转效果)

这个数字时钟的源码可以在Qt Demo中找到,风格是仿Android的,不过该Demo中含有三种动画效果(鉴于本人未曾用过Android的系统,因此不知道Android的数字时钟是否也含有这三种效果),其分别为滑动.翻页和旋转. 由于本人的Qt Creator输入中文后显示的都是乱码,因而在此只能使用英文进行注释,后期如果有时间再进行中文的相关整理.可能有些地方理解并不是很正确.希望大家多多指正! 以下为源码: [cpp] view plaincopy #include <QtCore> #i

转:QT 的点点滴滴 错误总结

转自:http://blog.csdn.net/lbsljn/archive/2009/12/29/5099590.aspx MinGw + CodeBlock + QT4.5 类定义后面要加";" 函数的实现部分,如果定义部分有void,则实现部分不能少; 检查include文件有无少; error: request for member `show' in `((MainWindow*)this)->MainWindow::rightform', which is of no