如何使用 PyGI 通过 Wnck 获取窗口列表?
我刚刚开始使用 PyGI(在 Ubuntu Natty 上),尽管我以前从未使用过 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 == []
。 谢谢!
I just started using PyGI (on Ubuntu Natty), although I have never used pygtk before.
I have used wnck in a wxPython program though, and it was easy enough to get a list of currently opened windows. From PyGI, the window list is always empty.
relevant code bits:
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()
with that, wins == []
.
Thanks!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您需要调用
screen.force_update()< /code>
在
screen.get_windows()
返回窗口列表之前。不幸的是文档缺少这部分:(You need to call
screen.force_update()
beforescreen.get_windows()
returns list of windows. Unfortunately docs are lacking this part :(在您的示例中,您必须使用:
Gtk.main_iteration_do(False)
而不是Gtk.main_iteration()
。In your example you have to use:
Gtk.main_iteration_do(False)
instead ofGtk.main_iteration()
.