我正在研究用Python编写的Gtk3应用程序。我的应用程序的主窗口设置如下:
#!/bin/python
import gi
gi.require_version('Gtk', '3.0')
from gi.repository import Gtk as Gtk
## OTHER IMPORTS
class MainGui(Gtk.Window):
def __init__(self):
Gtk.Window.__init__(self, title="APP TITLE")
# Defaults
self.set_default_size(600, 500)
## OTHER CODE
# Setup the Window
self.connect("destroy", self.on_close)
self.show_all()
## OTHER CODE
def on_close(self, widget):
if self.editor.get_document().get_has_changes():
save_dialog = Gtk.MessageDialog(self, 0,
Gtk.MessageType.QUESTION,
Gtk.ButtonsType.YES_NO,
"Save changes?")
response = save_dialog.run()
## REST OF DIALOG HANDELING
我遇到的问题与保存对话框有关。该应用程序显示对话框很好,但它隐藏了我的主窗口,这不是所需的效果。我试图寻找解决方案,但似乎无法弄清楚我做错了什么。任何帮助将不胜感激!
答案 0 :(得分:0)
发布后不久,我意识到事情不起作用的原因是因为头骨错误。我正在使用这个来连接我的on_close方法:
self.connect("destroy", self.on_close)
事实证明我应该这样做:
self.connect("delete-event", self.on_close)
现在情况很好。