在Qt中,点击一次按钮,就会触发一次其相连的槽函数执行。
多次点击,就会多次执行。
有些槽函数执行时间较长,在此期间,虽然界面卡住,但再次点击按钮,槽函数会在当前槽函数执行完,再次执行一次。
如何屏蔽槽函数执行期间的点击操作?
如下:
void on_myBtn_clicked()
{
myBtn->blockSignals(true);
//比较耗时的业务代码
//...
QApplication::processEvents();
myBtn->blockSignals(false);
}
此方法可解决重复点击的问题,但是不能解决界面卡顿的问题。
如果要解决界面卡顿,建议创建一个线程去执行业务代码。