如何使用Wnck使用PyGI获取windows列表?

2024-10-01 07:41:14 发布

您现在位置:Python中文网/ 问答频道 /正文

我刚开始使用PyGI(在ubuntunaty上),尽管我以前从未使用过pygtk。 不过,我在wxPython程序中使用了wnck,很容易就能得到当前打开的窗口的列表。在PyGI中,窗口列表总是空的。 相关码位:

from gi.repository import Gtk, Wnck

while Gtk.events_pending():
    Gtk.main_iteration()
#... in my app class...
    screen = Wnck.Screen.get_default()
    wins = screen.get_windows()

就这样,wins == []。 谢谢!在


Tags: from程序gtk列表getwxpythonscreenpygtk
2条回答

在您的示例中,您必须使用:Gtk.main_iteration_do(False)而不是Gtk.main_iteration()。在

您需要在screen.get_windows()返回窗口列表之前调用^{}。不幸的是,文档缺少这一部分:(

In [1]: from gi.repository import Gtk, Wnck

In [2]: Gtk.main_iteration()
Out[2]: True

In [3]: screen = Wnck.Screen.get_default()

In [4]: screen.force_update()

In [5]: screen.get_windows()
Out[5]: 
[<Window object at 0x167bd20 (WnckWindow at 0x195d0e0)>,
 <Window object at 0x167bf00 (WnckWindow at 0x195d740)>,
 <Window object at 0x167bf50 (WnckWindow at 0x195d850)>]

相关问题 更多 >