当我们想一个信号触发多个槽函数的时候,又对执行顺序有要求,要么要知道这些槽函数的执行顺序,Qt5后,在信号发射后,槽函数会按照链接顺序执行,下面写个简单的例子来验证一下。
环境
win10,Qt 5.13.0
QPushButton *btn1 = new QPushButton("btn1");
connect(btn1,&QPushButton::clicked,[=](){
qDebug() << "2";
});
connect(btn1,&QPushButton::clicked,[=](){
qDebug() << "1";
});
connect(btn1,&QPushButton::clicked,[=](){
qDebug() << "3";
btn1->disconnect(SIGNAL(clicked()));//断开全部连接
});
btn1->show();
点击之后结果:
可以验证执行顺序是按,连接顺序来进行的。