2013-07-05 81 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

公平點。我更新了我的答案。謝謝。 –