Dam*_*ski 2 python linux windows gtk3
我正在开发基于数据库 gtk3 的程序。使用的操作系统是 Linux Mint 17.3 64 位和 Win 7 64 位。在 Python 2.7 下测试的问题。我似乎无法控制关闭主窗口。如果有未保存的更改,我想防止窗口被关闭。我用:
self.window.connect("delete-event", self.quit)
Run Code Online (Sandbox Code Playgroud)
“摧毁”事件似乎完全无法控制。据我了解,“删除事件”应该是一个请求,因此是可控的。那么self.quit看起来像这样:
def quit(self, widget, something):
check_before_quit()
Run Code Online (Sandbox Code Playgroud)
然后check_before_quit()检查是否有任何未保存的更改。发布对话框,主窗口还在后面。代码设置为Gtk.main_quit()在按下 OK 时启动,否则只是return. 此时无论我是按确定/取消还是关闭对话框,主窗口都会关闭!在 Win 7 和 Linux 下也会发生同样的事情。我在 Ctrl+Q 下绑定了退出。这似乎工作正常,询问并正确退出或留在程序中。那么按下关闭窗口按钮是否会覆盖某些内容?
该delete-event处理器应该返回True或者False,不做退出本身。True如果您不想关闭窗口,它应该返回,如果您关闭了False。这听起来有点倒退,所以我换个说法:True如果你想在那里停止信号,或者False你不想做任何事情,它应该返回。
| 归档时间: |
|
| 查看次数: |
1588 次 |
| 最近记录: |