【发布时间】:2012-02-19 20:52:32
【问题描述】:
我对一些 gtk 和 gnome 概念有些困惑。我试图在我的 gnome2 桌面上获取非最小化窗口的列表,但是在阅读了 pygtk 文档并检查了结果之后,我无法理解结果。
下面的两个 sn-ps 似乎都不起作用。
首先我尝试了这个..
>>> 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 等。我更感兴趣的是了解我做错了什么,而不是获得诸如检查其他库之类的建议。
【问题讨论】:
标签: python gtk pygtk gnome window-management