我在写台式机。我已经通过Python了解了Qt和GTK+的基本知识,但我不知道如何显示已完成的桌面。如何使它成为窗口管理器的根窗口,或者是否有一种显示我不熟悉的桌面的方法?
发布于 2013-03-18 17:47:37
你不能把它作为根窗口。X有一个根窗口,你不能改变。有很多方法可以做你想做的事
旧的方法是桌面只是标准的X根窗口。图标只是一个没有边界的窗口。
现在,大多数系统打开一个大窗口,并将其标记为桌面窗口。因此,大多数窗口管理器都知道永远不要将其提升到任何其他窗口之上。X根窗口仍然在它后面,但它是隐藏的。这意味着你可以在这个窗口上做你想做的任何事情,画到它,包括图标或小部件,或者你的工具箱能做的任何事情。
如果您正在使用Gtk+,那么相关信息可以在GdkWindowTypeHint枚举中找到,特别是在GDK_WINDOW_TYPE_HINT_DESKTOP中。这些文档可以在这里找到:GdkWindow
但是,像Gnome3或Unity这样的桌面系统有一种较新的使用方式,称为Compositor窗口。当排序程序运行时,有一个覆盖系统上所有窗口的覆盖窗口。然后由排序者在这个覆盖层上绘制窗口的实际内容。然而,覆盖可以在这个覆盖窗口上绘制它想要的任何东西。例如,在Gnome3中,当您输入窗口选择器,并且窗口将自己排列到一个网格中时,窗口实际上并没有移动和缩小,排序器已经决定以这种方式绘制它们。在现实中,窗户仍然处于与以前相同的位置,但隐藏在这个覆盖层下。
这是一种非常先进的方法,当然不适合新手开发人员。您可能希望专注于第二种方法。
https://stackoverflow.com/questions/14680134
复制相似问题