gpt4 book ai didi

c++ - 为什么qt show()没有优先级?

转载 作者:行者123 更新时间:2023-11-30 02:18:13 27 4
gpt4 key购买 nike

我正在为一个应用程序使用 Qt。我想显示一个窗口,然后放置一个计时器并显示第二个窗口。但目前计时器已完成,然后 2 个窗口同时打开

this->firstWindow->show();
QTime dieTime = QTime::currentTime().addSecs(10);
while (QTime::currentTime() < dieTime);
this->secondWindow->show();

我尝试了很多解决方案,比如将 firstwindow 的 show() 直接放入构造函数中,但没有任何效果。

最佳答案

您正在使用阻塞 while循环等待时间过去,因此 GUI 线程无法更新用户界面。你可以使用 QTimer对于非阻塞等待或通过添加 qApp->processEvents(QEventLoop::AllEvents, 100); 刷新 GUI进入while循环。

我更喜欢 QTimer ,因为那样你就不会创建自己的事件循环。例如:

QTimer::singleShot(10000, this->secondWindow, SLOT(show()));

关于c++ - 为什么qt show()没有优先级?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52495723/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com