首页 > 其他 > 详细

(文字版)Qt信号槽源码剖析(三)

时间:2021-04-19 11:32:16      阅读:4      评论:0      收藏:0      [点我收藏+]

大家好,我是IT文艺男,来自一线大厂的一线程序员

上节视频给大家讲解了Qt信号槽的Qt宏展开推导;今天接着深入分析,进入Qt信号槽源码剖析系列的第三节视频。

Qt信号槽宏推导归纳

#define signals public
#define slots
#define Q_OBJECT public:     static const QMetaObject staticMetaObject;     virtual const QMetaObject *metaObject() const;     virtual void *qt_metacast(const char *);     virtual int qt_metacall(QMetaObject::Call, int, void **);     QT_TR_FUNCTIONS private:     Q_DECL_HIDDEN_STATIC_METACALL static void qt_static_metacall(QObject *, QMetaObject::Call, int, void **);
#define emit
#define SIGNAL(a)   "2"#a
#define SLOT(a)     "1"#a

如何查看预处理之后的代码

在Visual Studio中按如下操作查看预处理之后的代码::

  1. 右键工程【属性】菜单,弹出属性页对话框
  2. 依次单击【配置属性】-->【C/C++】-->【预处理器】
  3. 设置【预处理到文件】选项值为“是”
  4. 工程编译

技术分享图片

预处理之后代码与初始代码对比

Counter类声明对比
技术分享图片

Counter类定义对比
技术分享图片

main函数对比
技术分享图片

因此,上述分析一目了然,理论推导与实践结果是高度一致的;

今天就讲解到这里,更详细的原理分析与讲解,请关注微信公众号(itwenyinan),观看对应的的视频版讲解;谢谢

(文字版)Qt信号槽源码剖析(三)

原文:https://www.cnblogs.com/appsucc/p/14675252.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!