Qt - connect顺序影响槽函数执行顺序 + 信号和槽函数之间的参数关系
connect顺序影响槽函数执行顺序
qt5之后,用模板函数的方式绑定,会先绑定先执行
qt5之前,用SIGNAL、SLOT宏绑定的,没有特定的顺序
信号和槽函数之间的参数关系
1、信号函数和槽函数进行链接时,一般要求信号函数和槽函数的参数保持一致
connect(信号发送者, SIGNAL(signalFun()), 信号接收者, SLOT(slotFun())); // true
connect(信号发送者, SIGNAL(signalFun(int)), 信号接收者, SLOT(slotFun(int))); // true
connect(信号发送者, SIGNAL(signalFun(int, char)), 信号接收者, SLOT(slotFun(int, char))); // true
connect(信号发送者, SIGNAL(signalFun(Qstring, int)), 信号接收者, SLOT(slotFun(int, QString))); // false
connect(信号发送者, SIGNAL(signalFun(int)), 信号接收者, SLOT(slotFun(QString))); // false
2、当信号函数的参数大于槽函数的参数时
connect(信号发送者, SIGNAL(signalFun(int, char)), 信号接收者, SLOT(slotFun())); // true
connect(信号发送者, SIGNAL(signalFun(int, char)), 信号接收者, SLOT(slotFun(int))); // true
connect(信号发送者, SIGNAL(signalFun(int, QString)), 信号接收者, SLOT(slotFun(QString))); // false
3、当信号函数的参数小于槽函数的参数时
connect(信号发送者, SIGNAL(signalFun(int)), 信号接收者, SLOT(slotFun(int, char))); // false
connect(信号发送者, SIGNAL(signalFun(int)), 信号接收者, SLOT(slotFun(int, char=0))); // true 可以使用qt4版本传,但是不支持了
浙公网安备 33010602011771号