Qt开发,点一个按钮,希望先后调用两个方法。理论上可以把两个方法放在一个新方法里面,用一个SLOT就行。不过如果偏要点击一次按钮连续调用两个方法呢?也就是一个click信号绑定两个slot呢?
其实很简单,对click信号绑定两个SLOT即可:
//信号SIGNAL > 槽SLOT
connect(ui->btnAlpha, SIGNAL(clicked()),this,SLOT(test1()));
connect(ui->btnAlpha, SIGNAL(clicked()),this,SLOT(test2()));
//方法定义
void FormNorth2Ins::test1(){ qDebug() << "SLOT 1 >>"; }
void FormNorth2Ins::test2(){ qDebug() << "SLOT 2 >>"; }
输出:
从输出可以看出,两个方法都被调用了。
Qt的这个一个SIGNAL绑定多个SLOT的特性,倒是和WinForm中的一个事件绑定多个函数很像:
//WinForm, C#
btnAlpha.Click += new EventHandler(test1);
btnAlpha.Click += new EventHandler(test2);