【发布时间】:2014-11-22 10:06:34
【问题描述】:
我正在使用 ruby gem gtk2 来显示一个简单的文件对话框,用户可以在其中从他的计算机中选择一个文件。它工作得很好,但是有一个小问题。
选择文件后文件对话框不会关闭,但会一直保持打开状态,直到整个脚本完成。
我的文件对话框如下所示:
def ask_for_file(question)
dialog = Gtk::FileChooserDialog.new(question, nil,
Gtk::FileChooser::ACTION_OPEN,
"gnome-vfs",
[Gtk::Stock::OPEN, Gtk::Dialog::RESPONSE_ACCEPT],
[Gtk::Stock::CANCEL, Gtk::Dialog::RESPONSE_CANCEL]
)
if dialog.run == Gtk::Dialog::RESPONSE_ACCEPT
file_name = dialog.filename.to_s
return file_name
else
return nil
end
end
当我在我的脚本中这样调用它时:
path = ask_for_file("Test?")
sleep(5)
puts "continue with #{path}"
文件对话框保持打开状态 5 秒钟,在此期间没有响应。如何在选择文件后但在 5 秒睡眠之前关闭它?
在返回file_name 之前,我尝试在ask_for_file 中使用dialog.destroy,但这似乎没有帮助。
【问题讨论】:
标签: ruby gtk openfiledialog gtk2