单击后退出对话框

时间:2014-02-24 13:15:17

标签: ruby fxruby

我正在使用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 个答案:

答案 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将首先关闭对话框,然后您可以继续繁重的工作。