官方解析

Q_CLASSINFO

这个宏为类提供额外的信息,要想获取这个Q_CLASSINFO这个信息要使用QObject::metaObject()。Qt在Active Qt,Qt D-BUS以及QML中都限制使用这个特征。
这个额外的信息通过Name以及Value来提醒,存储的都是字符串
例子:

  class MyClass : public QObject{Q_OBJECTQ_CLASSINFO("Author", "Pierre Gendron")Q_CLASSINFO("URL", "http://www.my-organization.qc.ca")public:...};

博主例子

这个宏与C++里面的typeid很像,并且都是在RTTI里面搞的。

下面来举一个Q_CLASSINFO简单的使用例子,

下一篇博文给出它与typeid,继承法,以及元对象里的className,4种方法,区分当前调用的是哪个类!

程序运行截图如下:

源码如下:

myclass.h

#ifndef MYCLASS_H
#define MYCLASS_H#include <QObject>class MyClass : public QObject
{Q_OBJECTQ_CLASSINFO("Version","1.0.0")Q_CLASSINFO("author 中文","CSDN IT1995")
public:MyClass(QObject *parent = 0);
};#endif // MYCLASS_H

widget.h

#ifndef WIDGET_H
#define WIDGET_H#include <QWidget>class MyClass;namespace Ui {
class Widget;
}class Widget : public QWidget
{Q_OBJECTpublic:explicit Widget(QWidget *parent = 0);~Widget();private:Ui::Widget *ui;MyClass *m_myClass;
};#endif // WIDGET_H

main.cpp

#include "widget.h"
#include <QApplication>int main(int argc, char *argv[])
{QApplication a(argc, argv);Widget w;w.show();return a.exec();
}

myclass.cpp

#include "myclass.h"MyClass::MyClass(QObject *parent) : QObject(parent)
{}

widget.cpp

#include "widget.h"
#include "ui_widget.h"
#include "myclass.h"
#include <QDebug>
#include <QMetaObject>
#include <QMetaClassInfo>Widget::Widget(QWidget *parent) :QWidget(parent),ui(new Ui::Widget)
{ui->setupUi(this);m_myClass=new MyClass;qDebug()<<m_myClass->metaObject()->classInfo(0).name();qDebug()<<m_myClass->metaObject()->classInfo(0).value();qDebug()<<m_myClass->metaObject()->classInfo(1).name();qDebug()<<m_myClass->metaObject()->classInfo(1).value();
}Widget::~Widget()
{delete ui;
}

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

  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文档阅读笔记-stackUnder官方解析与实例

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

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

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

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

    目录 官方解析 博主例子 官方解析 QNetworkAccessMangager类运行应用程序回复和接收网络包. QNetworkAccessManager是一套API库,可以发包,设置代理,内存配置 ...

最新文章

  1. 最常用的CURL命令大全
  2. appium 驱动 对应9.0 系统_以后做Appium自动化测试,再也不会踩这些坑了!
  3. Alpha冲刺博客集
  4. 第一次作业:深入Linux源码分析进程模型
  5. 【转】译文:.net 程序员易犯的7个通病
  6. LeetCode:Add Binary
  7. 一个用户的上级部门的上级部门对用户也有修改权限,怎么判断?
  8. C++下面 计算时间
  9. iOS进阶之TCP代理鉴权过程
  10. Scipy教程 - 距离计算库scipy.spatial.distance
  11. 苹果开发者三类账号说明
  12. 数据库系统工程师考点
  13. HTML网页背景特效和鼠标点击特效
  14. 关于SurfaceView
  15. 马云谈大数据:就像石油和电一样
  16. web前端目前的就业形势_2020年Web前端的前景及就业形势
  17. 做一个聪明的项目参与者--制订WBS清单
  18. Excel·VBA统计表生成函数及应用实例
  19. 焦点对话AMA:Cirus如何重新定义所有权经济 用数据释放时代价值
  20. Codeforces Round #579 (Div. 3)——E. Boxers

热门文章

  1. 博客导读(09.3.21)
  2. @初学编程的朋友们,如果你能学得这些方法,学习将会更快一步!
  3. 教你一招:职场程序员,如何在人工智能时代做好职场发展规划?
  4. 这是 Google 工程师 Amit Singhal 发表在 Google 官方博客的一篇文章,讲述了 Google 搜索排名背后的一些技术,涉及到 Google 对网页,对语义,对用户意图的理解。
  5. 电脑操作者的养生之道
  6. [CB]TForm应用技巧
  7. 【vue2.0进阶】轻松理解Vuex的3个核心概念
  8. 为什么链接oracle报错,PG连接Oracle报错解决
  9. routing zuul_zuul自定义SimpleHostRoutingFilter
  10. java实现磁盘分配显示_Java实现窗体动态加载磁盘文件