0
我创建了“确认退出”对话框,以在退出时提示用户。我已经成功将它连接到'exit'菜单命令,但我也想将它连接到window-close(X)按钮。我怎样才能做到这一点?我已经有了一些Java Swing的经验,为了完成这个任务,你必须添加一个窗口监听器来调用这个提示符。有什么类似的我必须在这里做?FXRuby拦截窗口关闭
我创建了“确认退出”对话框,以在退出时提示用户。我已经成功将它连接到'exit'菜单命令,但我也想将它连接到window-close(X)按钮。我怎样才能做到这一点?我已经有了一些Java Swing的经验,为了完成这个任务,你必须添加一个窗口监听器来调用这个提示符。有什么类似的我必须在这里做?FXRuby拦截窗口关闭
做这样的:
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
一个更安全的方式退出将是 “getApp()出口(0)。”我正在使用FXRegistry,如果我退出时只是“退出”,它永远不会写入磁盘。这解决了它。 –
公平点。我更新了我的答案。谢谢。 –