信号和槽是用于两个对象间的通讯:
1、信号和槽的机制
* 信号和槽是用于两个对象间的通讯、信号和槽是Qt的核心特征
* 信号和槽的通过一个对象发出信号,而另一个对象将这个信号绑定到自己的槽上、当有信号到来的时候就执行相应功能的机制
* 信号和槽是要通过一个叫connect的函数进行绑定:connect(信号对象指针,SINGAL(信号),响应信号的对象指针,SLOT(响应信号槽))
* 信号:是指声明在signals:关键字后面的语句。格式为:netSignal(参数);有点类似为函数,但是没有函数体;(信号前面不能有任何访问说明符)
* 槽:是指声明在public slots:关键字后面的函数;和一个普通函数一样,也可以当普通函数使用、也可以和信号绑定在一起
* 例子:
signals: netSignal(); //信号的声明
public slots: netSlot(); //槽的声明
connect(this,SIGNAL(netSignal()),this,SLOT(netSlot())) //将同一个类里面的信号和槽绑定在一起
emit netSignal(); //发射信号信息(这个时候程序就会自动调用netSlot函数)
使用信号和槽要注意:
1、 对象需要继承或者间接继承为QObject
2、 在类的最开始添加“Q_OBJECT”宏(就是添加这个几个字符)
3、 信号和槽的参数要一样
4、 信号只用声明
5、 信号也可以绑定在另一个信号之上
博主QQ交流群:778212048