使用场景:
-
防止用户操作过快导致重复操作;
-
防止多次调用,影响业务逻辑
代码实现:(考虑用户体验效果,建议时间控制在0.5-1秒之间)
方式一:信号槽
void MainWindow::on_pushButton_clicked()
{
ui->pushButton->setEnabled(false);
QTimer::singleShot(1000, this, SLOT(onBtnEnble()));
}
// 槽函数
void MainWindow::onBtnEnble()
{
ui->pushButton->setEnabled(true);
}
方式二:Lambda表达式(qt5.7版本开始支持)
void MainWindow::on_pushButton_clicked()
{
ui->pushButton->setEnabled(false);
// Lambda 表达式
QTimer::singleShot(1000, this, [=](){
ui->pushButton->setEnabled(true);
});
}