Я использую ruby gem gtk2
для отображения простого диалогового окна файла, в котором пользователь может выбрать файл со своего компьютера. Он работает отлично, однако есть одна небольшая проблема.Ruby: диалоговое окно файла не закрывается
Диалог файла не закрывается после выбора файла, но он остается открытым до завершения всего скрипта.
Мой диалог файл выглядит следующим образом:
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 секундного сна?
Я попытался использовать dialog.destroy
в ask_for_file
перед тем, как возвращать file_name
, но это, похоже, не помогло.