Sto scrivendo un desktop. Conosco già le basi di Qt e GTK + attraverso Python ma non capisco come visualizzare il Desktop finito. Come si fa a renderlo la finestra radice di un Window Manager, oppure esiste un metodo per visualizzare il desktop con cui non ho familiarità?Desktop che crea una finestra del desktop?
risposta
Non si rende la finestra radice. X ha una finestra radice che non puoi cambiare. Ci sono un certo numero di modi per fare ciò che si vuole
- finestra X Root
Il vecchio modo è che il desktop era solo la finestra X radice standard. Le icone erano solo finestre senza bordi individuali.
- finestre desktop
Ora la maggior parte dei sistemi aprire una grande finestra, e segnare come essere una finestra del desktop. La maggior parte dei gestori di finestre non sa mai di sollevarla sopra altre finestre. La finestra radice di X è ancora dietro, ma è nascosta. Ciò significa che puoi fare tutto ciò che vuoi su questa finestra, disegnare su di esso, includere icone o widget o qualsiasi altra cosa il tuo toolkit può fare.
Se si utilizza Gtk +, le informazioni pertinenti si trovano nell'enum GdkWindowTypeHint
, in particolare nello GDK_WINDOW_TYPE_HINT_DESKTOP
. La documentazione può essere trovato qui: GdkWindow
- Compositor
Tuttavia, c'è un modo più recente che i desktop come Gnome3 o l'uso Unità, che è chiamata la sovrapposizione finestra Compositor. Quando un compositore è in esecuzione, c'è una finestra di sovrapposizione che copre tutte le finestre del sistema. Spetta al compositore disegnare il contenuto effettivo delle finestre su questo overlay. Tuttavia, la sovrapposizione può disegnare qualsiasi cosa desideri in questa finestra di sovrapposizione. Ad esempio, in Gnome3 quando si accede al selettore di finestre e le finestre si dispongono in una griglia le finestre non si muovono e si restringono, il compositore ha appena deciso di disegnarle in questo modo. In realtà, le finestre sono ancora nella stessa posizione in cui si trovavano prima, ma nascoste sotto questa sovrapposizione.
Questo è un modo molto avanzato di fare le cose, e certamente non per lo sviluppatore alle prime armi. Probabilmente vorrai concentrarti sul secondo metodo.
Esiste una soluzione basata su Qt? – Christopher
Immagino di sì. Avresti bisogno di chiedere loro – iain
- 1. Crea collegamento sul desktop C#
- 2. DirectX Desktop
- 3. Riserva parte del desktop
- 4. Crea un'applicazione per Web e desktop
- 5. Sessions, stazioni e desktop
- 6. QT Finestra traslucida e desktop remoto
- 7. Disegna OpenGL sul desktop di Windows senza una finestra
- 8. Mantenere "viva" la sessione del desktop remoto
- 9. disegno sotto icone sul desktop
- 10. In che modo software come GotoMeeting acquisiscono un'immagine del desktop?
- 11. Applicazioni desktop non banali che utilizzano Ruby?
- 12. Variabile desktop PowerShell
- 13. Come passare un processo tra desktop predefinito e desktop Winlogon?
- 14. Modalità Unity per Desktop remoto
- 15. Riferimento C# al desktop
- 16. Sviluppo tramite Desktop remoto
- 17. Come rendere modulare un'applicazione desktop?
- 18. Cambiare l'icona del desktop per l'applicazione Java
- 19. Come misurare le prestazioni del desktop remoto?
- 20. Hide Windows 8 Desktop Icons
- 21. MessageBox è modale al desktop
- 22. Cambia periodicamente lo sfondo del desktop periodicamente
- 23. disponi le icone del desktop con C#
- 24. Scala per desktop
- 25. Wpf - centratura sul desktop primario
- 26. Streaming desktop VLC
- 27. In che modo VLC riproduce video sul desktop?
- 28. Notifica estensione desktop Chrome
- 29. C# PowerShell crea un file di testo vuoto sul desktop
- 30. Modifica comportamento desktop virtuale Win10
Dai un'occhiata a questo comando: 'wmctrl -k on'. Mostrerà il "desktop", se il WM supporta tale. Quindi, se segui il comando (possibilmente nel WM), troverai una risposta a come è definito il desktop. –
Puoi dare un'occhiata al codice della blackbox (http://sourceforge.net/projects/blackboxwm/) che è un gestore di finestre davvero semplice. –