Python Gtk.MessageDialog隐藏父窗口

时间:2016-05-08 17:04:17

标签: python gtk3

我正在研究用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

我遇到的问题与保存对话框有关。该应用程序显示对话框很好,但它隐藏了我的主窗口,这不是所需的效果。我试图寻找解决方案,但似乎无法弄清楚我做错了什么。任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:0)

发布后不久,我意识到事情不起作用的原因是因为头骨错误。我正在使用这个来连接我的on_close方法:

self.connect("destroy", self.on_close)

事实证明我应该这样做:

self.connect("delete-event", self.on_close)

现在情况很好。