我正在使用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将执行下载方法,该方法需要花费时间。
问题:对话框一直挂起,直到执行该方法,我们如何在点击时关闭它,之后方法会被执行?
谢谢你的提示?
答案 0 :(得分:0)
没有代表发表评论,所以假设这是一个。您是否尝试将dwd_file作为参数传递给下载方法,让下载方法首先关闭对话框,然后继续执行您想要执行的任何逻辑?这应该摆脱对话框没有问题,除非你的下载方法依赖于dwd_file的某些元素
答案 1 :(得分:0)
def download(sender, sel, ptr)
self.close
# Do that which will take time.
end
在fxruby中,您将创建自己的类,并从fxruby lib继承FXMainWindow
clss或任何其他类。
self
将根据您的示例指向实际创建对话框的类,因此self.close
将首先关闭对话框,然后您可以继续繁重的工作。