Qt如何使用模态(exec())实现等待效果,并同时进行其他操作?(先显示等待,再进行其他操作!)

2025-02-22 22:08:10
推荐回答(3个)
回答1:

最好用背景线程处理。
点击登录后,创建等待对话框,给等待对话框传递数据,显示等待对话框。
等待对话框显示后,根据传递的数据进行动作(这个动作最好做成背景线程处理的)。
动作处理完毕后,通知等待对话框动作已经完毕,并返回结果。
等待对话框收到通知后,保存好结果数据,关闭自己。
调用等待对话框的地方,从等待对话框实例中获得结果数据。

回答2:

答案就是,这个验证必须要在进行模态显示的窗口中进行.

比如你点击了登陆按钮,就把 用户和密码都传递到这个模态窗口中,这个窗口就是那个一直在旋转的那个窗口. 等这个窗口验证完毕就自己退出.不就ok了.

这个窗口我觉得可以用一个背景透明 QWidget 来播放一个gif .

回答3:

采用非模态,先show()登录界面,条件满足后关闭登录界面,再显示主界面;主界面也是类似的循环,等待登录界面返回

while (1)
{
if ( MainInitFinish() )
{
close();
break;
}
else
{
QCoreApplication::processEvents(QEventLoop::AllEvents, 100);
QThread::msleep(100);
}
}