信 和槽

1、信 和槽是一种高级接口,应用于对象之间的通信,它是QT的核心特性,也是QT区别于其它工具包的重要地方。信 和槽是QT自行定义的一种通信机制。
2、moc(Meta ObjectCompiler)QT工具:该工具是一个C++预处理程序,它为高层次的事件处理自动生成所需要的附加代码。
3、当对象改变其状态时,信 就由该对象发射(emit)出去,这就是对象所要做的全部事情,它不知道另一端是谁在接收这个信 。这就是真正的信息封装,它确保对象被当作一个真正的软件组件来使用。
4、只有当所有的槽返回以后发射函数(emit)才返回。
5、元对象编译器moc(meta object compiler)对C++文件中的类声明进行分析并产生用于初始化元对象的C++代码,元对象包含全部信 和槽的名字以及指向这些函数的指针。moc读C++源文件,如果发现有Q_OBJECT宏声明的类,它就会生成另外一个C++源文件,这个新生成的文件中包含有该类的元对象代码。
例如,假设我们有一个头文件mysignal.h,在这个文件中包含有信 或槽的声明,那么在编译之前 moc 工具就会根据
该文件自动生成一个名为mysignal.moc.h的C++源文件并将其提交给编译器;类似地,对应于mysignal.cpp文件moc工具
将自动生成一个名为mysignal.moc.cpp文件提交给编译器。
元对象代码是signal/slot机制所必须的。用moc产生的C++源文件必须与类实现一起进行编译和连接,或者用#include
语句将其包含到类的源文件中。moc并不扩展#include或者#define宏定义,它只是简单的跳过所遇到的任何预处理指令。

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2018年3月8日
下一篇 2018年3月8日

相关推荐