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版本传,但是不支持了

posted @ 2024-05-27 16:59  Citrusliu  阅读(135)  评论(0)    收藏  举报