Qt程序,明明设置了点x 是隐藏窗体,为什么有时候会关闭?

王桑的一天 2015-08-19 03:19:59
Qt程序,设置了点 x 是隐藏主窗体(有托盘图标),大多数时候是正常工作的。
为什么有时候, 有时候,有时候……点 x 会关闭程序?好像是运行一段时间后会这样
啥情况呀?
...全文
406 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
王桑的一天 2015-09-24
  • 打赏
  • 举报
回复
求教
王桑的一天 2015-09-24
  • 打赏
  • 举报
回复
引用 10 楼 u013466477 的回复:
当时我也做了很久,现在丛云里面找来了,还不能解决那我就没办法了。
找到根源啦,是有一个子窗口不是hide,被close掉了,应该是它导致hide的主窗口被结束掉 谢谢啦!
冷静忍耐 2015-09-24
  • 打赏
  • 举报
回复
当时我也做了很久,现在丛云里面找来了,还不能解决那我就没办法了。 void MyWidget::changeEvent(QEvent *event) { if(event->type() == QEvent::WindowStateChange) { if(windowState() & Qt::WindowMinimized) QTimer::singleShot(0, this, SLOT(hideMainWidget())); else if(windowState() & Qt::WindowNoState) QTimer::singleShot(0, this, SLOT(showMainWidget())); } QWidget::changeEvent(event); } void MyWidget::hideMainWidget() { this->showMinimized(); if (lrc->isHidden()) lrc->hide(); else lrc->show(); } void MyWidget::showMainWidget() { lrc->hide(); show(); setWindowState(Qt::WindowNoState); }
王桑的一天 2015-09-24
  • 打赏
  • 举报
回复
引用 8 楼 u013466477 的回复:
前面主窗口已是托盘,然后歌词hide,主窗口还hide干什么?? 这个我刚好做过,如果hide不行,你可以试一下close看行不行,我用的close 其实这么简单描述也搞不清啦,现在在公司,我回去看下我的怎么做的,好像重载了一个事件 你可以重写void closeEvent(QCloseEvent *); 或者void hideEvent(QHideEvent *); 然后看到底为什么关了
我是说主窗口正在显示,再hide,就会关闭
冷静忍耐 2015-09-24
  • 打赏
  • 举报
回复
前面主窗口已是托盘,然后歌词hide,主窗口还hide干什么?? 这个我刚好做过,如果hide不行,你可以试一下close看行不行,我用的close 其实这么简单描述也搞不清啦,现在在公司,我回去看下我的怎么做的,好像重载了一个事件 你可以重写void closeEvent(QCloseEvent *); 或者void hideEvent(QHideEvent *); 然后看到底为什么关了
王桑的一天 2015-09-24
  • 打赏
  • 举报
回复
引用 6 楼 u013466477 的回复:
可能程序有问题吧,是不是判断做的有问题??你在其它隐藏窗口的事件中干了啥??
就是个播放器,主窗口能最小化到托盘(hide),歌词窗口也可以关闭(hide),歌词hide后,再hide主窗口,程序就关闭了,不会最小化到托盘了
冷静忍耐 2015-09-24
  • 打赏
  • 举报
回复
可能程序有问题吧,是不是判断做的有问题??你在其它隐藏窗口的事件中干了啥??
王桑的一天 2015-09-16
  • 打赏
  • 举报
回复
引用 3 楼 wn0112 的回复:
[quote=引用 2 楼 jiangcaiyang123 的回复:] 没有遇到过。你开了n个窗口,当最后一个窗口关闭时,Qt认为程序结束了。
哎对对对,就是这么个情况,但我都是hide()啊,hide()最后一个窗口后,程序就关闭了。而不是最小化到托盘[/quote] 只开一个主窗口时,hide()就不会关闭程序
王桑的一天 2015-09-16
  • 打赏
  • 举报
回复
引用 2 楼 jiangcaiyang123 的回复:
没有遇到过。你开了n个窗口,当最后一个窗口关闭时,Qt认为程序结束了。
哎对对对,就是这么个情况,但我都是hide()啊,hide()最后一个窗口后,程序就关闭了。而不是最小化到托盘
彩阳 2015-08-24
  • 打赏
  • 举报
回复
没有遇到过。你开了n个窗口,当最后一个窗口关闭时,Qt认为程序结束了。
clz2012 2015-08-24
  • 打赏
  • 举报
回复
这个。。。只能在响应函数和其他可疑的位置加日志了,偶尔这种为题。。。

21,491

社区成员

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

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