我对一些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()
[]
Run Code Online (Sandbox Code Playgroud)
那么这个
>>> 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)>]
Run Code Online (Sandbox Code Playgroud)
如控制台输出中所示,第二个选项返回两个窗口.但我无法弄清楚它们是什么.他们都没有任何孩子,无论我在桌面上有多少个窗口,我总是得到这两个窗口.
任何人都可以解释典型的基于gtk的桌面环境的对象层次结构吗?我无法理解为什么上面的代码不起作用.
请不要发布资源到wnck,xlib,qt等的替代解决方案.我更感兴趣的是了解我做错了什么,而不是获取建议,比如我们检查其他库.