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##的条件下让程序可以正常关闭~
谢谢大家
...全文
1941 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的源代码确认此事。
内容概要:本文围绕“新能源发电接入弱电网的宽频带振荡机理及抑制方法”开展深入研究,结合Matlab编程与Simulink仿真平台,系统剖析新能源发电系统在弱电网条件下引发的宽频带振荡问题。研究聚焦于变流器控制动态、锁相环(PLL)频率耦合效应、序阻抗建模及其交互特性等关键因素,揭示振荡产生的内在机理。通过构建精确的数学模型与电磁暂态仿真模型,采用扫频分析法获取系统序阻抗特性,并结合奈奎斯特稳定性判据进行判别,验证理论分析的正确性。同时,提出针对性的抑制策略,如改进控制算法、引入阻尼补偿环节或优化控制器参数设计,以提升系统在弱电网环境下的稳定性。整个研究流程完整复现了博士论文级别的科研工作,具有较强的理论深度与工程应用价值。; 适合人群:适用于具备电力系统、电力电子或自动控制等相关专业背景,熟悉Matlab/Simulink仿真工具,正在从事新能源并网、电力系统稳定性分析、变流器控制策略研究的研究生、科研人员及电力行业工程技术开发者。; 使用场景及目标:①深入理解新能源并网系统在弱电网中发生宽频带振荡的物理本质与动态演化过程;②掌握基于频域阻抗法的系统稳定性建模与分析方法;③学习并复现高水平学术论文中的关键技术路线,提升独立科研能力与仿真建模水平;④为实际工程中新能源电站的并网稳定性问题提供理论依据与可行的抑制方案参考。; 阅读建议:建议读者结合文中提供的Matlab代码与Simulink仿真模型,逐步完成从阻抗建模、扫频仿真到稳定性判据应用的全过程实践,重点关注锁相环与电流环之间的动态耦合关系,并辅以相关文献深化对频域分析理论的理解,实现理论与仿真的深度融合。

21,501

社区成员

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

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