我在寫桌面。我已經通過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管理器。 –