Qt设置不在win任务栏显示将无法正常关闭程序

money939 2013-02-07 10:48:22
1、windows下
2、用Qt Creator

%%:使用widget.setWindowFlags() 参数使用:Qt::Tool、 Qt::SubWindow 、 Qt::Popup
以上三个参数任意选用一个均可以实现Qt程序在运行时,windows的任务栏上不显示该Qt程序。

##:我对widget设置去掉了标题栏,于是为了关闭程序我重写了void mousePressEvent(QMouseEvent *event)实现了鼠标右击时关闭该窗体。调用的是close()函数


如果我只是单独实现##没有实现%%,##是可以正常使用的。但是我加上%%的功能后,用Qt Creator运行了,
再对其右击时发现Qt creator的输出框并没有显示该应用程序已经关闭!!!但是屏幕上的窗体确实是消失了!!!此时我尝试去关闭Qt Ctreator会有提示说:是否要强制关闭(我刚刚运行的程序)。这就更加说明了我的程序没有正常退出!!!

如何在实现%%and##的条件下让程序可以正常关闭~
谢谢大家
...全文
1856 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
z55716368 2015-05-11
  • 打赏
  • 举报
回复
请问楼主你最后是怎么解决的啊 我现在也是和你一样的问题 搞不来。
夏逸 2013-03-29
  • 打赏
  • 举报
回复
建议从内部发出终止信号,来结束整个程序。
money939 2013-02-08
  • 打赏
  • 举报
回复
对了,你说的源代码是什么意思?
money939 2013-02-08
  • 打赏
  • 举报
回复
用exit()确实解决了问题!非常感谢 文档里说用quitOnLastWindowClosed设成false可以关闭该特性,可是这个函数我的窗体widget里根本没有这个函数额…… 百度到: Application.Exit 方法 通知所有消息泵必须终止,并且在处理了消息以后关闭所有应用程序窗口。 Form.Close 方法 关闭窗体。 如果该窗体是应用程序的主启动窗体,则調用窗体的Close()方法,跟調用Application.Exit的效果差不多。 如果该窗体非主启动窗体,则只是关闭该窗体而不关闭整个应用程序。 大概明白了,非常感谢版主,小弟半玩半学Qt十来天,对信号还不是很清楚……
dext 2013-02-07
  • 打赏
  • 举报
回复
找了找源代码,发现原本Qt 就有一个信号解决这个问题。。。 看来对 Qt Document 还有待进一步学习。 void QApplication::lastWindowClosed () [signal] This signal is emitted from QApplication::exec() when the last visible primary window (i.e. window with no parent) with the Qt::WA_QuitOnClose attribute set is closed. By default, this attribute is set for all widgets except transient windows such as splash screens, tool windows, and popup menus QApplication implicitly quits when this signal is emitted. This feature can be turned off by setting quitOnLastWindowClosed to false. See also QWidget::close().
dext 2013-02-07
  • 打赏
  • 举报
回复
qApp->exit();
dext 2013-02-07
  • 打赏
  • 举报
回复
没有试验,可能会有以这样的问题。但不是Qt的问题。默认情况下,Qt会在最后一个窗口关闭后退出主程序。类似于关闭主窗口就退出。但是当你把窗口设置成 上边的情况时,可能是你的窗口失去了“主窗口”的特性,而导致程序不能正常关闭。你也可以自己查看Qt的源代码确认此事。

21,462

社区成员

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

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