2013-02-03 16 views
5

Piszę na pulpicie. Znam już podstawy Qt i GTK + poprzez Python, ale nie rozumiem, jak wyświetlić gotowy Desktop. Jak zrobić to okno główne Menedżera okien, czy istnieje metoda wyświetlania pulpitu, którego nie znam?Pulpit tworząc okno pulpitu?

+0

Sprawdź to polecenie: 'wmctrl -k on'. Pokaże "pulpit", jeśli WM go obsługuje. Tak więc, jeśli śledzisz polecenie (prawdopodobnie do WM), znajdziesz odpowiedź na pytanie, jak definiuje się pulpit. –

+0

Możesz rzucić okiem na kod Blackboxa (http://sourceforge.net/projects/blackboxwm/), który jest naprawdę prostym menedżerem okien. –

Odpowiedz

1

Nie tworzysz okna głównego. X ma jedno okno główne, którego nie można zmienić. Istnieje wiele sposobów na to, co chcesz

  • okno X Korzeń

stary sposób, że pulpit był tylko standardowe okno X korzeń. Ikony były tylko pojedynczymi oknami bez obramowania.

  • Pulpit Okno

Teraz większość systemów otwórz duże okno, i oznaczyć ją jako okno na pulpicie. Większość menadżerów okien wie, że nigdy nie podnosi go ponad inne okna. Okno X-root jest nadal za nim, ale jest ukryte. Oznacza to, że możesz zrobić w tym oknie wszystko, co chcesz, narysować do niego ikony, widżety lub cokolwiek, co może zrobić twój zestaw narzędzi.

Jeśli używasz Gtk +, wówczas odpowiednia informacja znajduje się w wyliczeniu GdkWindowTypeHint, w szczególności GDK_WINDOW_TYPE_HINT_DESKTOP. W dokumentacji można znaleźć tutaj: GdkWindow

  • compositor

Jednak jest nowa droga, że ​​komputery stacjonarne jak Gnome3 lub użytkowania Unity, który jest nazywany nakładki Okno kompozytor. Gdy kompozytor jest uruchomiony, znajduje się okno nakładki, które obejmuje wszystkie okna w systemie. Następnie do kompozytora należy narysować rzeczywistą zawartość okien w tej nakładce. Jednak nakładka może rysować, co chce w tym oknie nakładki. Na przykład w Gnome3, gdy wchodzisz do selektora okna, a okna układają się w siatkę, okna nie poruszają się i kurczy, kompozytor właśnie zdecydował się je narysować w ten sposób. W rzeczywistości okna nadal znajdują się w tej samej pozycji, w jakiej były wcześniej, ale ukryte pod tą nakładką.

To bardzo zaawansowany sposób na robienie rzeczy, a już na pewno nie dla początkującego programisty. Prawdopodobnie chcesz skupić się na drugiej metodzie.

+0

Czy istnieje rozwiązanie oparte na Qt? – Christopher

+0

Tak sobie wyobrażam. Musisz ich zapytać – iain