在python中获取活动的gtk窗口

时间:2010-11-12 15:31:23

标签: python gtk

我如何获得python中活动gtk.Window的句柄? (不是我创建的窗口,而是当前关注的窗口)。

2 个答案:

答案 0 :(得分:4)

答案实际上不是特定于操作系统的 - 你可以在GTK中完成。您可以使用gtk.window_list_toplevels()从应用程序中获取所有顶级窗口的列表,然后迭代它直到找到window.is_active()返回True的窗口。

如果您想考虑其他窗口而不是应用程序中的窗口,那么您可以尝试gtk.gdk.screen_get_default().get_toplevel_windows()但这只会让您获得GDK窗口而不是GTK窗口,因为您无法知道这些GDK窗口实际上与GTK窗口相关联。

答案 1 :(得分:0)

[注意:这回答了OP最初的措辞,其他读者可能会搜索的问题 - 而不是他们在另一个答案的评论中将其更改为非常不同的问题。]

如果你有一个for x in range(7): print(differentiate(i,x,0)) 并且已经添加了GtkApplication - 你应该这样做,因为GtkWindow可以做很多很酷的事情! - 然后你可以使用GtkApplication更简单的专用于此目的的API:

gtk_application_get_active_window()

  

获取应用程序的“活动”窗口。

     

活动窗口是最近关注的窗口(在应用程序中)。如果另一个应用程序拥有它,此窗口可能没有焦点 - 这只是此应用程序中最近关注的窗口。

以Python术语表示GtkApplication