2016-05-08 179 views
0

我正在使用Python編寫的Gtk3應用程序。我的應用程序的主窗口設置如下:Python Gtk.MessageDialog隱藏父窗口

#!/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

發佈後不久,我意識到事情不起作用的原因是因爲骨頭頭腦的錯誤。我被鉤住了我用這個方法on_close:

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

原來我應該做這種方式:

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

現在工作的事情很大。