在我的代码中,我首先使用一个打开的Gtk文件对话框。选择文件后,会获得所有打开窗口的列表,这是我在Gtk的帮助下实现的。
关键是在我当前的代码中(参见下面的代码),还提到了打开文件对话框的窗口(列表中的最后一个),尽管它应该被关闭,因此不存在。即使我在对话例程之后输入'sleep(5)',对话窗口也会出现在窗口列表中。奇怪的是,对话窗口在5秒内被冻结,应该关闭!如何避免对话框窗口在列表中?或者有没有办法检查窗口是否不存在,类似于wait_for_closed_window例程?
提前感谢您的帮助!
from gi.repository import Gtk
from gi.repository import Wnck
from time import sleep
def open_dialog_load_file():
dialog = Gtk.FileChooserDialog("Open ...", None,
Gtk.FileChooserAction.OPEN,
(Gtk.STOCK_CANCEL, Gtk.ResponseType.CANCEL,
Gtk.STOCK_OPEN, Gtk.ResponseType.OK))
response = dialog.run()
if response == Gtk.ResponseType.OK:
session_file = dialog.get_filename()
elif response == Gtk.ResponseType.CANCEL:
session_file = ""
dialog.destroy()
print session_file
return session_file
if __name__ == '__main__':
open_dialog_load_file()
sleep(2)
Gtk.init([])
screen = Wnck.Screen.get_default()
screen.force_update()
list_wnds = screen.get_windows()
screen = None
Wnck.shutdown()
print
for wnd in list_wnds:
print " " + wnd.get_name()
print
答案 0 :(得分:1)
在screen = Wnck.Screen.get_default()
while Gtk.events_pending():
Gtk.main_iteration()
不需要sleep