如何在没有任务栏条目的情况下获得无父 QWindow

Posted

技术标签:

【中文标题】如何在没有任务栏条目的情况下获得无父 QWindow【英文标题】:How to get a parentless QWindow without taskbar entry 【发布时间】:2016-01-14 14:44:22 【问题描述】:

我想要一个不在任务栏中但仍由窗口管理器处理的窗口(例如,在肉桂中显示漂亮的隐藏和显示动画)。如果我使用 Qt::Tool 没有动画。 如果我使用 QDialog 或其他,则会有一个任务栏条目。我可以以某种方式直接控制它吗?

【问题讨论】:

“动画”是什么意思? 你在寻找类似widget.setFlags(Qt::FramelessWindowHint) 的东西吗? 框架无关紧要。它关于任务栏条目和动画。 【参考方案1】:

Cinnamon 仅对常规窗口和对话框进行动画处理,动画在 Qt::Tool 窗口上运行良好,至少在 KDE 下。

但是您可以通过在系统上找到并编辑来自 cinnamon 的文件 windowManager.js 来解决此问题,以将 Meta.Window.Type.UTILITY 窗口类型(相当于 Qt::Tool)添加到函数 WindowManager._shouldAnimate 中的动画窗口列表中:

if (type == Meta.WindowType.DIALOG || type == Meta.WindowType.MODAL_DIALOG ) 
        return global.settings.get_boolean("desktop-effects-on-dialogs");

应该改为:

if (type == Meta.WindowType.DIALOG || type == Meta.WindowType.MODAL_DIALOG 
                                   || type == Meta.WindowType.UTILITY ) 
        return global.settings.get_boolean("desktop-effects-on-dialogs");

【讨论】:

以上是关于如何在没有任务栏条目的情况下获得无父 QWindow的主要内容,如果未能解决你的问题,请参考以下文章

如何设置应用程序的任务栏图标在Windows 7-qt,windows-7,pyqt

打开的程序如何快速最小化到任务栏

如何获取全屏浏览器的innerHeight [重复]

delphi程序如何从任务栏及时还原、显示窗体?

如何在没有?authuser = 1的情况下获得经过身份验证的GCS URL

了解服务器/客户端路由:亚马逊(?)如何在没有重定向(或历史条目)的情况下重定向我的 SPA?