当要使用延时,又不想卡死界面时,就开启本地事件循环;
官方给出的说明如下:
调用传统的Sleep,这时候程序会阻塞。
开启本地事件循环,搭配QTimer:
代码程序:
void Widget::on_pushButton_clicked()
{
//在10s后执行某功能:
QEventLoop loop;
QTimer::singleShot(10*1000, this, SLOT(runSomeFunction()));
QTimer::singleShot(10*1000, &loop, SLOT(quit()));
loop.exec();
}
void Widget::runSomeFunction()
{
qDebug()<<"runSomeFunction()";
}