当前位置: 首页 > news >正文

做ppt设计师哪个网站好专业seo公司

做ppt设计师哪个网站好,专业seo公司,网站手机访问 动易,上海制作企业网站1.宏定义 qt中引入了MOC来反射,编译阶段变成 MOC–>预处理–>编译–>汇编–>链接 1-1、Q_OBJECT 这个宏定义了一系列代码,包括元对象和处理的函数 #define Q_OBJECT \public: \QT_WARNING_PUSH \Q_OBJECT_NO_OVERRIDE_WARNING \static c…

1.宏定义

qt中引入了MOC来反射,编译阶段变成 MOC–>预处理–>编译–>汇编–>链接

1-1、Q_OBJECT

这个宏定义了一系列代码,包括元对象和处理的函数

#define Q_OBJECT \public: \QT_WARNING_PUSH \Q_OBJECT_NO_OVERRIDE_WARNING \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_OBJECT_NO_ATTRIBUTES_WARNING \Q_DECL_HIDDEN_STATIC_METACALL static void qt_static_metacall(QObject *, 		QMetaObject::Call, int, void **); \QT_WARNING_POP \struct QPrivateSignal {}; \QT_ANNOTATE_CLASS(qt_qobject, "")

1-2、signal slot emit

从如下得知,slot和emit只是作一个修饰而已,本身为空没有任何作用,signal也只是声明为pulic

#define signal public
#define slot
#define emit

1-2、qt4中诞生的SIGANL SLOT

可以看到这两个宏也只是把我们输入的函数转成了字符串,后续去匹配

#define SIGANL "2"#a
#define SLOT "1"#a

我们去VS项目–属性–C/C+±-预处理器–预处理文件生成选择:是
发现预编译后宏展开如下。即验证上述
在这里插入图片描述

2.信号槽规则

1.信号的参数可以比槽多,反之不行,信号槽可以一对一,一对多,多对一

2.槽函数执行的顺序是按连接时的顺序依次执行的,重复connect会导致多次执行

connect(obj, SIGNAL(sig1), this, SLOT(slot1()));
connect(obj, SIGNAL(sig1), this, SLOT(slot2()));
那么sig1发出时,先执行槽函数 slot1, 再执行槽函数 slot2

3.如果用SIGNAL方式connect,可以不需要作用域,因为上面说过了,他把他转为了字符串。目前遇到好处是可以绑定多态信号槽,而无需引入派生类文件。坏处是不会进行检查,编译时才报warning

qt5的方式connect就需要,好处是写代码时就会进行参数匹配检查

4.连接可以被disconnect删除

5.注意connect第五个参数,详细可以见QT第五个参数,举两个常见例子
在子线程抛出来信号,主线程若不绑定为QueuedConnection或BlockingQueuedConnection,会接收不到。
如果用BlockingQueuedConnection,信号槽不能在同一个线程因为发送完信号后发送者所在线程会阻塞,直到槽函数运行完。本来就阻塞了。更别谈槽函数运行了。死锁了

3.connect实现

connect实现代码非常多,感兴趣的可以到这里阅读:QT5 qobject.cpp
总结下来分为这几步:
1.QObject类对象内部维护了一个名为connectionLists的成员变量,用于记录信号和槽函数的关联
2.MOC 会在预处理阶段根据 Q_OBJECT 宏生成对应的元对象信息,并将这些信息存储在 QObject 类中的一个指针变量中,可以通过 QObject::metaObject() 方法获取
3.在发射信号时,信号方会生成一个携带信号索引和参数的结构体,然后调用 QMetaObject::activate() 方法。QMetaObject::activate() 方法会先根据槽函数所在的类的元对象信息,获取该类存储的槽函数索引,然后根据索引找到相应的槽函数并调用

http://www.dinnco.com/news/28341.html

相关文章:

  • 邳州哪家做百度推广网站seo百度关键词优化软件
  • 北京网站提升排名品牌策略怎么写
  • 宁波公司网站建设定制服务常见网络营销推广方法
  • 怎么做动漫网站网上做广告怎么收费
  • 做网页用的网站信息流优化师工作内容
  • 可以做动漫的网站有哪些如何自己做一个网址
  • 大网站制作公司公司网站模板
  • 如何做网站程序新乡百度关键词优化外包
  • 开发网站用什么语言最好吗电脑上突然出现windows优化大师
  • 外国语学院英文网站建设seo哪个软件好
  • 杭州 网站建设公司排名百度搜索关键词规则
  • dell网站的设计特色联合早报 即时消息
  • 酒店家具网站源码爱站网查询
  • 北京好网站制作公司哪家好汕头网站设计公司
  • 连云港网站制作品牌营销策划ppt
  • 自己做的网站能放到阿里云上博客
  • 商城形式的网站需要多少钱好的竞价推广托管
  • 昆明做百度网站电话百度关键词工具入口
  • 网站页面制作公司江苏做网站的公司有哪些
  • 什么是做学院网站品牌seo推广咨询
  • w网站开发文献网络销售技巧和话术
  • 哪里可以做网站推广网络推广方法有几种
  • 网站被抓取新媒体培训
  • 网络营销策划的目的本地网络seo公司
  • 集团微网站建设微信推广平台自己可以做
  • 用什么软件做网站好百度开户需要什么资质
  • 网站不需要什么备案宣传推广方案
  • 沈阳营销型网站建设互联网营销公司
  • 青岛网站设计建议i青岛博采网络seo排名计费系统
  • 电影网站建设需要什么软件大数据营销系统