我在写桌面。我已经通过Python了解了Qt和GTK +的基础知识,但我不明白如何显示完成的桌面。你如何使它成为窗口管理器的根窗口,或者是否有一种显示我不熟悉的桌面的方法?创建桌面窗口的桌面?
回答
你不会让它成为根窗口。 X有一个你不能改变的根窗口。有许多方法可以做到你想要什么
- X根窗口
旧的方式是在桌面只是标准的X根窗口。图标只是单独的无边界窗口。
- 桌面窗口
现在大多数系统打开一个大窗口,并将其标记为桌面窗口。然后,大多数窗口经理都知道永远不要把它提升到任何其他窗口。 X根窗口仍然在后面,但它隐藏起来。这意味着你可以在这个窗口上做任何你想做的事,绘制它,包括图标或者小工具,或者你的工具包可以做的任何事情。
如果您使用的是Gtk +,则可在GdkWindowTypeHint
enum中找到相关信息,特别是GDK_WINDOW_TYPE_HINT_DESKTOP
。该文件可以在这里找到:GdkWindow
- 排字
然而,有一个像桌面GNOME3或统一使用,这就是所谓的合成器重叠视窗更新的方式。当合成器运行时,覆盖窗口将覆盖系统上的所有窗口。然后由合成器在这个覆盖图上绘制窗口的实际内容。但是,覆盖图可以在此覆盖窗口上绘制任何想要的内容。例如,在Gnome3中,当你进入窗口选择器并且窗口排列成一个网格时,窗口并没有真正的移动和缩小,合成器决定以这种方式绘制它们。实际上,窗户仍处于他们以前的相同位置,但隐藏在这个覆盖层下面。
这是一种非常先进的做事方式,当然不适合新手开发者。你可能想要专注于第二种方法。
是否有基于Qt的解决方案? – Christopher
我想象得如此。你需要问问他们 – iain
- 1. 在桌面图层上创建窗口
- 2. 创建一个像窗口的桌面主窗口
- 3. 经线窗口桌面
- 4. 窗口电话窗口桌面通信
- 5. Java:桌面和桌面图标之间的框架/窗口
- 6. 创建一个坚持桌面的非最小化窗口
- 7. 将WPF控件插入到桌面上创建新的窗口
- 8. 创建大于桌面屏幕的应用程序窗口
- 9. 为桌面创建GraphHopper API
- 10. 桌面之外的Tkinter窗口
- 11. 弹出窗口和透明的桌面
- 12. 桌面上的C#位置窗口
- 13. 制作窗口在XLib/Qt的桌面
- 14. 没有我的窗口捕获桌面
- 15. 如何用烧瓶桌面创建新窗口
- 16. 如何在桌面通知窗口中创建下载链接?
- 17. C#在桌面上创建一个粘滞窗口,具有transperancy
- 18. 我如何创建窗口站和Windows桌面使用C#
- 19. 窗口滑入和滑出桌面
- 20. 如何获取桌面窗口句柄?
- 21. 单击桌面使GTK3窗口消失
- 22. 窗口工作站和桌面
- 23. Winium.desktop - 处理新桌面窗口
- 24. 将WPF窗口与桌面混合
- 25. 桌面取消行提醒窗口
- 26. 桌面图形或“蒙皮”窗口
- 27. Java桌面浏览器弹出窗口
- 28. WPF拖动窗口到桌面
- 29. JavaFX:在桌面上保留窗口
- 30. 桌面上的iPhone视口
看看这个命令:'wmctrl -k on'。它会显示“桌面”,如果WM支持这样的话。所以,如果你追踪命令(可能进入WM),你会发现如何定义桌面的答案。 –
你可以看看黑盒子的代码(http://sourceforge.net/projects/blackboxwm/),它是一个非常简单的Windows管理器。 –