0

我正在使用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 将执行需要时间的下载方法。

问题:对话框一直挂在该方法执行之前,我们如何在单击时关闭它,然后该方法被执行?

感谢任何提示?

4

2 回答 2

0

没有代表发表评论,所以假设这是一个。您是否尝试将 dwd_file 作为参数传递给下载方法,让下载方法首先关闭对话框,然后继续执行您希望它执行的任何逻辑?除非您的下载方法依赖于 dwd_file 的某些元素,否则应该可以毫无问题地摆脱对话框

于 2014-02-26T05:07:41.857 回答
0
def download(sender, sel, ptr)
  self.close
  # Do that which will take time. 
end

例如,在 fxruby 中,您将创建自己的类并FXMainWindow从 fxruby 库继承 clss 或任何其他类。

self将指向根据您的示例实际创建对话框的类,因此self.close将首先关闭对话框,然后您可以继续繁重的工作。

于 2014-03-10T12:27:33.430 回答