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

如图:点击登录进行模态等待,同时进行用户、密码验证,验证完成后模态对话框消失!如果先exec()模态之后,就进入阻塞状态,无法进行验证了,求解答!... 如图:点击登录进行模态等待,同时进行用户、密码验证,验证完成后模态对话框消失!
如果先exec()模态之后,就进入阻塞状态,无法进行验证了,求解答!
展开
 我来答
cooke1234
推荐于2016-05-07 · TA获得超过6861个赞
知道大有可为答主
回答量:4617
采纳率:72%
帮助的人:3608万
展开全部
最好用背景线程处理。
点击登录后,创建等待对话框,给等待对话框传递数据,显示等待对话框。
等待对话框显示后,根据传递的数据进行动作(这个动作最好做成背景线程处理的)。
动作处理完毕后,通知等待对话框动作已经完毕,并返回结果。
等待对话框收到通知后,保存好结果数据,关闭自己。
调用等待对话框的地方,从等待对话框实例中获得结果数据。
更多追问追答
追问
等待对话框exec()之后就不能进行动作了啊
追答
主程序先show主画面,再exec()。
主画面里出来后,如果按下按钮就show 等待对话框(不用再exec).
等待对话框进行验证,结束后返回主画面验证结果。
创作者XXGDQ4kMbU
2013-03-06 · TA获得超过1281个赞
知道小有建树答主
回答量:371
采纳率:66%
帮助的人:431万
展开全部
答案就是,这个验证必须要在进行模态显示的窗口中进行.

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

这个窗口我觉得可以用一个背景透明 QWidget 来播放一个gif .
追问
传参数好传递,但是模态窗口显示之后,(调用exec()之后,他之后的代码就不能执行了),所以也就不能验证了啊
追答
回答不了...
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2019-06-23
展开全部
采用非模态,先show()登录界面,条件满足后关闭登录界面,再显示主界面;主界面也是类似的循环,等待登录界面返回

while (1)
{
if ( MainInitFinish() )
{
close();
break;
}
else
{
QCoreApplication::processEvents(QEventLoop::AllEvents, 100);
QThread::msleep(100);
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式