一个窗口作为另外一个窗口的子窗口隐藏问题

fxbszj 2016-01-25 07:58:06

//父窗口
void Widget::on_pushButton_clicked()
{
MinDlg dlg(this); //提示窗

//设置半透明
QPalette pal = dlg.palette();
pal.setColor(QPalette::Background, QColor(60,60,60,70));
dlg.setPalette(pal);
dlg.setAutoFillBackground(true);

dlg.exec();
}



//子窗口
void MinDlg::on_pushButton_clicked()
{
this->hide();

for(int i = 0; i < 30; ++i)
{
Sleep(1000);
}

this->close();
}


以上是我是按照我的原代码写的测试例子。在父窗口里启动子窗口,当子窗口点击某个按钮后,先隐藏,在做了某些操作之后(因为可能这个时间有点长,不希望界面一直等待在那里),再退出子窗口。可现在的情况是,只有等到整个on_pushButton_clicked函数结束之后,窗口才能隐藏(我把close去掉是可以隐藏的)。请问各位大神,我该怎么修改才能在函数结束之前先隐藏
...全文
206 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
fxbszj 2016-01-26
  • 打赏
  • 举报
回复
引用 5 楼 zbw1185 的回复:
[quote=引用 2 楼 fxbszj 的回复:] 顶顶顶下,有人会吗?
先this->colse();然后再for循环 [/quote] 测试了下,先close后面的内容是可以继续执行的, 但是跟我要的没什么关系啊,我要的是在执行这段内容的时候,先把这个子窗口给关闭了
画茧自缚 2016-01-26
  • 打赏
  • 举报
回复
引用 2 楼 fxbszj 的回复:
顶顶顶下,有人会吗?

先this->colse();然后再for循环
fxbszj 2016-01-26
  • 打赏
  • 举报
回复
引用 3 楼 shihoongbo 的回复:
建议不要使用sleep这样windows的api Qt函数和windowsAPI混用的话,可能会出现奇怪的结果 当然,这只是建议 是不是引起这个问题的原因,不敢确定
这只是我的测试用例,我实际项目是有其他内容的。这并不是引起问题的所在
未狂 2016-01-26
  • 打赏
  • 举报
回复
建议不要使用sleep这样windows的api Qt函数和windowsAPI混用的话,可能会出现奇怪的结果 当然,这只是建议 是不是引起这个问题的原因,不敢确定
fxbszj 2016-01-26
  • 打赏
  • 举报
回复
顶顶顶下,有人会吗?
pslov 2016-01-25
  • 打赏
  • 举报
回复
试了一下,我也想明白,同求~~

16,216

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧