Как мне получить список всех окон на моем рабочем столе gnome2 с помощью pygtk?

Я немного запутался в некоторых концепциях gtk и gnome. Я пытаюсь получить список не свернутых окон на моем рабочем столе gnome2, но после прочтения документации pygtk и проверки результатов я не могу понять результаты.

Ни один из двух приведенных ниже фрагментов не работает.

Сначала я попробовал это ..

>>> gtk.gdk.window_get_toplevels()
[<gtk.gdk.Window object at 0xb74339b4 (GdkWindow at 0x8a4c170)>]

>>> gtk.gdk.window_get_toplevels()[0].get_children()
[]

затем это

>>> d = gtk.gdk.DisplayManager()   
>>> d.get_default_display().get_screen(0).get_root_window().get_children() 
[<gtk.gdk.Window object at 0x89dcc84 (GdkWindow at 0x8a4c170)>, <gtk.gdk.Window object at 0x89dccac (GdkWindow at 0x8a4c0c0)>] 

Как видно из вывода консоли, второй вариант возвращает два окна. Но я не смог понять, что это такое. Ни у кого из них нет детей, и я всегда получаю эти два окна, независимо от того, сколько окон у меня на рабочем столе.

Может ли кто-нибудь объяснить иерархию объектов типичной среды рабочего стола на основе gtk? Я не могу понять, почему приведенный выше код не работает.

Пожалуйста, воздержитесь от публикации альтернативных решений этого ресурса для wnck, xlib, qt и т. Д. Меня больше интересует понимание того, что я делаю неправильно, чем получение совета, например, о проверке других библиотек.

5
задан ptomato 10 June 2012 в 16:38
поделиться