如何获得Gtkwindow而不是GdkWindow

时间:2014-03-08 15:08:09

标签: gtk pygtk

我想获得gdkwindow,我知道有方法列出在桌面上打开的所有gdk窗口,但是如何获取GtkWindow? 我知道GtkWindow有一个属性gdkwindow,但GdkWindow如何获取GtkWindow?

1 个答案:

答案 0 :(得分:2)

如果没有更多上下文,我无法更好地回答您的问题,但请尝试使用gtk.window_list_toplevels()。它将返回当前进程的所有顶级GTK窗口的列表。

以下是如何设计返回相应顶级方法的方法 来自GDK窗口XID的GTK窗口。

def find_gtk_window(xid):
    for gtk_window in gtk.window_list_toplevels():
        if gtk_window.window.xid == xid:
            return gtk_window

但是,如果你想列出其他进程的所有GTK窗口,那么这不是(轻松)可能的。对How do I get a list of all windows on my gnome2 desktop using pygtk?的回答很好地描述了这种情况。