2013-07-05 83 views
0

我创建了“确认退出”对话框,以在退出时提示用户。我已经成功将它连接到'exit'菜单命令,但我也想将它连接到window-close(X)按钮。我怎样才能做到这一点?我已经有了一些Java Swing的经验,为了完成这个任务,你必须添加一个窗口监听器来调用这个提示符。有什么类似的我必须在这里做?FXRuby拦截窗口关闭

回答

1

做这样的:

require 'fox16' 
include Fox 

class MyApp < FXMainWindow 
    def initialize(app) 
    @app = app 
    super(app, "Test", :height => 150, :width => 350, :opts=> DECOR_ALL) 
    self.connect(SEL_CLOSE, method(:on_close)) 
    end 

    def create 
    super 
    show(PLACEMENT_SCREEN) 
    end 

    def on_close(sender, sel, event) 
    q = FXMessageBox.question(@app, MBOX_YES_NO, "Sure?", "You sure?") 
    if q == MBOX_CLICKED_YES 
     getApp().exit(0) 
    end 
    end 
end 

FXApp.new do |app| 
    MyApp.new(app) 
    app.create 
    app.run 
end 
+0

一个更安全的方式退出将是 “getApp()出口(0)。”我正在使用FXRegistry,如果我退出时只是“退出”,它永远不会写入磁盘。这解决了它。 –

+0

公平点。我更新了我的答案。谢谢。 –