一、信号和槽的拓展
1、信号可以连接信号
2、一个信号可以连接多个槽函数
3、多个信号 可以连接 同一个槽函数
4、信号和槽函数的参数 必须类型一一对应
正确对应:
信号参数的类型必须一一对应,QString对应QString,int对应int
void (Teacher::*teacherSignal)(QString , int) = &Teacher::hungry;
void(Student::*studentSlot)(QString , int) = &Student::treat;
connect(tc,teacherSignal,yzl,studentSlot);
错误对应:
void (Teacher::*teacherSignal)(int , QString) = &Teacher::hungry;
void(Student::*studentSlot)(QString , int) = &Student::treat;
connect(tc,teacherSignal,yzl,studentSlot);
5、信号和槽的参数个数
信号的参数个数可以多于槽函数的参数个数,槽函数的参数个数不能多于信号的参数个数。
void (Teacher::*teacherSignal)(QString , int) = &Teacher::hungry; //信号
void(Student::*studentSlot)(QString) = &Student::treat;//槽函数
槽函数可以接收,也可以不接收多余的信号 。
二、Qt4版本信号槽连接
connnect(信号的发送者,发送信号SIGNAL(信号),信号的接收者,槽函数SLOT(槽函数))
connect(tc,SIGNAL(hungry()),yzl,SLOT(treat()));
Qt4版本的优点:参数直观
缺点:类型编译器不做检测
Qt5版本以上 支持Qt4版本写法 反之不支持