Q_GADGET宏是轻量级的Q_OBJECT宏。使用这个宏无需继承OBject类就能使用QMetaObject相关的特性(也就是元对象系统的特点如反射),同样Q_GADGET也要是私有的。

Q_GADGET可以使用Q_ENUM,Q_PROPERTY,Q_INVOKABLE,但是不能使用信号与槽。

Q_GADGET使得类成员,staticMetaObject都可用。staticMetaObject是QMetaObject的类型,提供了访问Q_ENUMS的功能。

下面是博主的小例子

使用Q_GADGET,访问其中的Q_ENUMS

程序运行截图如下:

源码如下:

GadgetTest.h

#ifndef GADGETTEST_H
#define GADGETTEST_H#include <QObject>class GadgetTest
{Q_GADGET
public:GadgetTest();enum Priority { High, Low, VeryHigh, VeryLow };enum Type{Zero, One, Two, Three};Q_ENUM(Priority)Q_ENUM(Type)
};#endif // GADGETTEST_H

GadgetTest.cpp

#include "GadgetTest.h"GadgetTest::GadgetTest()
{}

main.cpp

#include <QCoreApplication>
#include <QDebug>
#include <QMetaObject>
#include <QMetaMethod>
#include <QMetaEnum>
#include <QMetaObject>
#include "GadgetTest.h"int main(int argc, char *argv[])
{QCoreApplication a(argc, argv);int count = GadgetTest::staticMetaObject.enumeratorCount();for(int i = 0; i < count; i++){QMetaEnum en = GadgetTest::staticMetaObject.enumerator(i);int enCount = en.keyCount();for(int j = 0; j < enCount; j++){qDebug() << en.value(j);qDebug() << en.key(j);}qDebug() << "----------------华丽的分割线----------------";}return a.exec();
}

源码下载地址:

https://github.com/fengfanchen/Qt/tree/master/GADGET_Demo

Qt文档阅读笔记-Q_GADGET官方解析及实例相关推荐

  1. Qt文档阅读笔记-QSet官方解析及实例

    目录 官方解析 博主栗子 官方解析 QSet类是一个模板类,他是一个哈希表集合. QSet<T>是Qt的一个普通容器类.QSet存储的值是不指明顺序的,QSet对这些值提供了快速检索的功能 ...

  2. Qt文档阅读笔记-QtWebApp官方解析与实例(使用QtWebApp搭建HTTP服务器)

    目录 官方解析 博主例子 官方解析 QtWepApp是一个C++的http服务器,受到了java Servlets的启发,因为是Qt写的,所以有跨平台的支持. QtWebApp包含如下的组成部分:   ...

  3. Qt文档阅读笔记-QHostInfo官方解析与实例(根据Host获取IP)

    官方解析 QHostInfo提供了一个静态方法获取主机名: QHostInfo中有一个查找机制,可以根据IP找主机名,也可能工具主机名找IP,可以通过调用QHostInfo::lookupHost这个 ...

  4. Qt文档阅读笔记-QTcpServer官方解析与实例(使用QSocket创建简单的HTTP服务器)

    目录 官方解析 博主例子(做一个简单的HTTP服务器) 本例子中HTTP协议关键点 官方解析 QTcpServer类,提供TCP服务的基础: 这个类接受TCP连接,可以指定一个端口,也可以让其自动一个 ...

  5. Qt文档阅读笔记-QWebPage官方解析与实例

    目录 官方解析 博主例子 源码下载地址 官方解析 QWebPage提供一个视图对象和一个web页面: QWebPage提供了web页面的内容,各种设置(是否支持JavaScript等)和连接,它与QW ...

  6. Qt文档阅读笔记-QWebView官方解析与实例

    目录 背景 官方解析 博主例子 背景 最近发现某Qt项目,出现的效果杠杆的,在看某一小功能的时候,发现有个echart的东西,百度了发现,真的是一个新大陆,Qt加web编程,贼吉尔可怕. 在此发现使用 ...

  7. Qt文档阅读笔记-Q_CLASSINFO官方解析与实例

    官方解析 Q_CLASSINFO 这个宏为类提供额外的信息,要想获取这个Q_CLASSINFO这个信息要使用QObject::metaObject().Qt在Active Qt,Qt D-BUS以及Q ...

  8. Qt文档阅读笔记-stackUnder官方解析与实例

    目录 官方解析 博主例子 官方解析 这里可以配合raise()和lower()这两个函数来使用! 博主例子 用2个label,点击谁谁就浮在界面的最上面,很简单的代码,程序运行截图如下: 源码如下: ...

  9. Qt文档阅读笔记-QPropertyAnimation官方解析及实例

    目录 官方解析 博主例子 官方解析 QPropertyAnimation QPropertyAnimation类为Qt属性提供动画. QPropertyAnimation类可以修改Qt属性,从而达到动 ...

最新文章

  1. html5 呼吸灯效果,jQuery仿地铁线路指示灯效果
  2. CSS3 Transitions 你可能不知道的知识点
  3. CodeChef Ada Pawns
  4. pcie ep 应该支持哪种interrupt_7寸国产笔记本评测,酷睿处理器+8G+256G,还支持手写笔...
  5. ftp 断点续传 Android,Android使用FTP实现断点续传
  6. 高德地图如何将比例尺放大到10米?
  7. 【 iview 实践指南】之如何优雅地在Table中嵌套Input(代码篇)
  8. CSS选择器的权重详解
  9. oracle中文转全拼音,Oracle 将汉字转为全拼或返回拼音首字母SQL(二)
  10. 【转】VPP基本安装
  11. 客户端软件 大华_大华“飞燕”,一款主打稳定WiFi的路由器!
  12. UHF-RFID基础知识
  13. 阿里云Kubernetes Service Mesh实践进行时(7): 可观测性分析服务Kiali
  14. 搭建微信小程序(前后端)
  15. 斐讯k2路由器刷华硕固件做桥接中继
  16. KL散度-Entropy-JS散度-W距离
  17. 什么是 1号信令、7号信令和PRI信令?
  18. 来自安徽、关心安徽的朋友一定要看!快报记者3点准时登陆在线聊天 - 评说天下 - 19楼互动生活空间
  19. 【FusionCompute】基于FreeNAS部署并使用虚拟存储(五)
  20. Ogg For Bigdata 同步Oracle数据到KAFKA(包括初始化历史数据)

热门文章

  1. iOS 之 获取View所在控制器
  2. 一起来做个免登录资源导航小程序!
  3. 深入解读Gartner 2021年《分析与BI平台魔力象限》
  4. 【转载】飞鸽传书2013官方下载
  5. 深圳软件开发向前跳转会略过一些节点
  6. 刚开始学ASP+ACCESS时,该注意的事项
  7. 利用pre-compiled headers技术以加速编译速度(一)
  8. 伴随我成长的编程书,赶紧收藏!!
  9. 经典面试题(20):以下代码将输出的结果是什么?
  10. 测试工程师听了想打人