Python GTK 3+ 控制关闭 window

Python GTK 3+ controlling closing the window

我正在开发基于数据库 gtk3 的程序。 OS 使用的是 Linux Mint 17.3 64 位和 Win 7 64 位。在 Python 2.7 下测试的问题。我似乎无法控制关闭主 window。如果有未保存的更改,我想防止 window 被关闭。我使用:

self.window.connect("delete-event", self.quit)

"destroy"事件似乎完全无法控制。据我了解 "delete-event" 应该是一个请求,因此是可控的。 那么 self.quit 看起来像这样:

def quit(self, widget, something):
    check_before_quit()

然后 check_before_quit() 检查是否有任何未保存的更改。发布对话框和主要 window 仍然落后。如果按下 OK,代码设置为启动 Gtk.main_quit(),否则只是 return。此时无论我是按 ok/cancel 还是关闭对话框,主 window 无论如何都会关闭!同样的事情发生在 Win 7 和 Linux 下。 我在 Ctrl+Q 下有一个绑定以退出。这似乎工作正常,询问,并正确退出或留在程序中。那么按下关闭 window 按钮是否会以某种方式覆盖某些内容?

delete-event 处理程序应该 return TrueFalse,而不是自行退出。如果您不想关闭 window,它应该 return True,如果您想要,它应该 False。这听起来有点倒退,所以我会换个说法:如果你想在那里停止信号,它应该 return True,如果你不想这样做,它应该 False关于它的任何事情。