我正在编写一个桌面应用程序。我已经通过Python了解了Qt和GTK+的基础知识,但我不知道如何显示完成的桌面应用程序。您如何将其设置为窗口管理器的根窗口,或者是否有其他我不熟悉的方法可以显示桌面应用程序?
你不能将它作为根窗口。X有一个根窗口,你无法更改。有许多方法可以实现你想要的效果。- X根窗口旧的方式是桌面只是标准的X根窗口。图标只是单独的无边框窗口。- 桌面窗口现在大多数系统会打开一个大窗口,并将其标记为桌面窗口。大多数窗口管理器知道永远不会将其置于其他窗口之上。X根窗口仍然在其后面,但它被隐藏了。这意味着你可以在此窗口上执行任何操作,绘制它,包括图标或小部件或任何其他工具包可以做的事情。如果你正在使用Gtk+,则相关信息可以在GdkWindowTypeHint枚举中找到,特别是GDK_WINDOW_TYPE_HINT_DESKTOP。文档可以在这里找到:GdkWindow - 合成器然而,像Gnome3或Unity这样的桌面环境采用了一种新的方式,称为组合器覆盖窗口。当组合器运行时,会有一个覆盖所有系统窗口的覆盖窗口。然后,由组合器在此覆盖上绘制窗口的实际内容。但是,覆盖层可以在此覆盖窗口上绘制任何它想要的东西。例如,在Gnome3中,当您进入窗口选择器并将窗口排列成网格时,窗口并没有真正移动和缩小,组合器只是决定以这种方式绘制它们。实际上,窗口仍然处于以前的位置,但被隐藏在这个覆盖层下面。这是一种非常先进的方法,肯定不适合初学者开发者。您可能希望专注于第二种方法。
wmctrl -k on
。如果 WM 支持,它将显示“桌面”。因此,如果您跟踪该命令(可能进入 WM),您将找到有关如何定义桌面的答案。 - Emanuel Berg