zoukankan      html  css  js  c++  java
  • (文字版)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. 工程编译

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

    Counter类声明对比

    Counter类定义对比

    main函数对比

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

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

  • 相关阅读:
    RabbitMQ-RPC版主机管理程序
    FTP
    主机管理程序
    高级FTP
    选课系统
    电子银行购物商城
    计算器
    员工信息查询系统
    工资管理系统
    三级菜单
  • 原文地址:https://www.cnblogs.com/appsucc/p/14675252.html
Copyright © 2011-2022 走看看