C&C++   发布时间:2022-04-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了(文字版)Qt信号槽源码剖析(三)大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

大家好,我是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. 工程编译

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

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

Counter类声明对比

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

Counter类定义对比

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

@H_645_52@main函数对比

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

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

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

大佬总结

以上是大佬教程为你收集整理的(文字版)Qt信号槽源码剖析(三)全部内容,希望文章能够帮你解决(文字版)Qt信号槽源码剖析(三)所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: