Я немного запутался в некоторых концепциях 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 и т. Д. Меня больше интересует понимание того, что я делаю неправильно, чем получение совета, например, о проверке других библиотек.