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 True
或 False
,而不是自行退出。如果您不想关闭 window,它应该 return True
,如果您想要,它应该 False
。这听起来有点倒退,所以我会换个说法:如果你想在那里停止信号,它应该 return True
,如果你不想这样做,它应该 False
关于它的任何事情。
我正在开发基于数据库 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 True
或 False
,而不是自行退出。如果您不想关闭 window,它应该 return True
,如果您想要,它应该 False
。这听起来有点倒退,所以我会换个说法:如果你想在那里停止信号,它应该 return True
,如果你不想这样做,它应该 False
关于它的任何事情。