5

我正在写一个桌面。我已经通过 Python 了解了 Qt 和 GTK+ 的基础知识,但我不明白如何显示完成的桌面。您如何使其成为窗口管理器的根窗口,或者有没有一种方法可以显示我不熟悉的桌面?

4

1 回答 1

1

你不让它成为根窗口。X 有一个您无法更改的根窗口。有很多方法可以做你想做的事

  • X 根窗口

旧的方式是桌面只是标准的 X 根窗口。图标只是单独的无边框窗口。

  • 桌面窗口

现在大多数系统都会打开一个大窗口,并将其标记为桌面窗口。然后,大多数窗口管理器都知道永远不会将其提升到任何其他窗口之上。X 根窗口仍在其后面,但它是隐藏的。这意味着你可以在这个窗口上做任何你想做的事情,在它上面画画,包括图标或小部件或你的工具包可以做的任何其他事情。

如果您使用的是 Gtk+,那么可以在GdkWindowTypeHint枚举中找到相关信息,特别是GDK_WINDOW_TYPE_HINT_DESKTOP. 文档可以在这里找到:GdkWindow

  • 合成器

但是,有一种更新的方式可供 Gnome3 或 Unity 等桌面使用,称为合成器叠加窗口。当合成器运行时,会有一个覆盖窗口覆盖系统上的所有窗口。然后由合成器在此叠加层上绘制窗口的实际内容。但是,覆盖可以在此覆盖窗口上绘制它想要的任何内容。例如,在 Gnome3 中,当您输入窗口选择器并且窗口将自己排列成网格时,窗口并没有真正移动和缩小,合成器只是决定以这种方式绘制它们。实际上,窗户仍然在原来的位置,但隐藏在这个覆盖之下。

这是一种非常先进的做事方式,当然不适合新手开发人员。您可能希望专注于第二种方法。

于 2013-03-18T17:47:37.043 回答