宏Q_OBJECT: 在Qt的程序中如果使用了信号与反应槽就必须在类的定义中声明这个宏,不过如果你声明了该宏但在程序中并没有信号与反应槽,对程序也不会有任何影响。
在使用信号和槽的过程中,需要添加
Q_OBJECT
宏定义,但是添加定义以后出错。在这种情况下,需要重新执行qmake
来解决该问题,或者在.pro
文件中添加或删除一个空格,系统自动运行qmake
。或者执行【构建】-【执行qmake】来解决该问题。
emit :它是Qt定义的一个宏,作用就是发射信号。然后你再写一个槽函数,在构造函数中,通过connect函数将此信号与你所写的槽连接起来,即可使用。
用法:emit 信号
exec(): a.exec() 进入事件循环 ;return a.exec()相当于把程序运行交给Qt处理,进入程序的循环状态; return 0 程序就直接退出了,不能达到显示的效果;要让线程消息循坏,需要调用exec函数。
关键字signal:
const: 线程间用“信号与槽”传递引用参数的话,一定要加const,因为const文字常量存在常量区中,生命周期与程序一样的长。这样可以避免slot调用的时候参数的运行期已过而使引用无效。