我正在开发一个Qt应用程序。在程序的某个时刻,我必须暂停应用程序,然后启动功能。

QTimer::singleShot(10000, this, SLOT(testFuntion()));
qDebug() << "after Singleshot";


这就是我的问题。计时器启动,我可以看到我的testFuntion()的输出,但是它不会暂停应用程序。我可以在SingleShot之后立即看到qDebug输出,在10秒钟后可以看到我的testFuntion()输出。

您能帮我解决这个问题吗?还是还有其他命令可以使我的应用程序暂停一段时间,然后运行功能?

最佳答案

它正在按应有的方式工作。这行:

QTimer::singleShot(10000, this, SLOT(testFuntion()));


计时器计时时将启动该功能。但是,计时器独立于应用程序的其余部分运行,因此在执行此行之后,主应用程序将继续进入qDebug()行。

如果您确实要暂停该应用程序(我不建议这样做,因为该应用程序无法响应),则可以使用sleep()usleep()函数。

更好的方法是为用户显示某种通知(可能是进度条)。

关于c++ - Qt停止申请一段时间,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14724184/

10-11 18:43