如何让不在任务来上显示图标的对话框最小化后,完全隐藏?

weixin_43735333 2025-11-20 15:45:37

创建了一个对话框,设置为不在任务栏上显示图标,setWindowFlags(Qt::Tool | Qt::FramelessWindowHint);,但是调用showMinimized()最小化隐藏后,会在桌面显示一个类似按钮的对话框,如下图的myDlg的一个小窗口,怎么不显示这个对话框?

如果调用hide隐藏,所有模式子对话框都会自动退出。所以还是想用showMinimized(),可以将所有子对话框一起隐藏掉,调用showNormal()还可以全部恢复。

 

 

...全文
206 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2025-12-02
  • 打赏
  • 举报
回复

这个问题是因为在Qt::FramelessWindowHint下,最小化后的窗口在某些系统上会显示为桌面小窗口。有几种解决方案:

最佳解决方案:修改窗口标志‌
在设置窗口标志时添加Qt::WindowMinMaxButtonsHint
5:

cpp
Copy Code
setWindowFlags(Qt::Tool | Qt::FramelessWindowHint | Qt::WindowMinMaxButtonsHint);
替代方案:使用系统菜单提示‌
或者使用Qt::WindowSystemMenuHint
2:

cpp
Copy Code
setWindowFlags(Qt::FramelessWindowHint | Qt::WindowSystemMenuHint | Qt::WindowMinimizeButtonHint);
原因分析‌
当只设置Qt::FramelessWindowHint时,系统可能无法正确处理最小化行为,导致显示为桌面小窗口。添加窗口按钮提示可以让系统正确识别窗口的最小化状态
5。

推荐做法‌
建议在窗口初始化时使用完整的窗口标志组合,这样可以确保最小化行为在所有平台上都正常工作,同时保持无边框的视觉效果
2
5。

你可以先尝试第一种方案,通常就能解决问题。如果仍有异常,再考虑第二种替代方案。

21,474

社区成员

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

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