获取活动的gtk窗口在python中
我该怎么在Python中获取当前活动的gtk.Window
?(不是我自己创建的窗口,而是现在正在被聚焦的窗口)。
2 个回答
0
[注意:这个回答是针对提问者最初提出的问题,其他读者可能会搜索这个问题,而不是他们在其他回答的评论中更改后的不同问题。]
如果你有一个 GtkApplication
,并且已经把你的 GtkWindow
加入到里面——你应该这么做,因为 GtkApplication
可以做很多很酷的事情!——那么你可以使用 GtkApplication
提供的一个更简单的接口来实现这个目的:
Gtk.Application.get_active_window()
:
这个方法可以获取应用程序的“活动”窗口。
活动窗口是指最近被聚焦的窗口(在这个应用程序内)。如果现在有其他应用程序在使用这个窗口,它可能没有焦点——这里指的只是这个应用程序内最近被聚焦的窗口。
5
其实这个答案并不是特定于某个操作系统的——你可以在GTK中实现这个功能。你可以通过使用 gtk.window_list_toplevels()
来获取应用程序中所有顶层窗口的列表,然后逐个检查,直到找到一个 window.is_active()
返回 True
的窗口。
如果你想考虑其他应用程序的窗口,可以尝试 gtk.gdk.screen_get_default().get_toplevel_windows()
,但这只会获取GDK窗口,而不是GTK窗口,因为你无法确定这些GDK窗口是否真的和GTK窗口有关联。