Выход из диалогового окна после нажатия
Я использую fxruby для создания диалогового окна, которое имеет несколько вариантов. Вот часть, где я отображаю одну опцию и что происходит после нажатия на эту опцию.
# Download file
dwd_file= FXButton.new(contents,
"&Download\tDownload file",
:opts => FRAME_RAISED|FRAME_THICK|LAYOUT_BOTTOM |LAYOUT_FIX_WIDTH|LAYOUT_FIX_HEIGHT,
:width => 150, :height => 50)
dwd_file.connect(SEL_COMMAND, method(:download))
def download(sender, sel, ptr)
# Doing something which will take time.
end
Dwd_file.connect выполнит метод загрузки, который делает что-то, что требует времени.
Вопрос: диалоговое окно висит до тех пор, пока этот метод не будет выполнен, как мы можем закрыть его при нажатии и позже метод будет запущен?
Спасибо за любой совет?
2 ответа
def download(sender, sel, ptr)
self.close
# Do that which will take time.
end
В fxruby вы создадите свой собственный класс и наследуете FXMainWindow
clss или любой другой класс из библиотеки fxruby, например.
self
будет указывать на ваш класс, который фактически создает диалоговое окно в соответствии с вашим примером, таким образом self.close
сначала закроет диалоговое окно, а затем вы можете продолжить тяжелую работу.
Не иметь представителя, чтобы оставить комментарий, поэтому предположим, что это один. Вы пытались передать dwd_file в качестве аргумента методу загрузки, когда метод загрузки сначала закрывал диалоговое окно, а затем продолжал с той логикой, которую вы намеревались выполнить? Это должно избавить от диалогового окна без проблем, если только ваш метод загрузки не использует какой-либо элемент dwd_file