删除FileChooserDialog的事件

时间:2014-02-10 17:16:56

标签: dialog gtk pygtk filechooser

我想在删除其窗口时隐藏FileChooserDialog。 我可以将它从“取消”按钮中隐藏起来但是当我从它的窗口关闭它时它没有响应然后它会崩溃。

View the crash here

  

当我按顺序执行此操作时发生崩溃:

     
      
  • 我打开它(工作正常)

  •   
  • 我尝试从窗口'X'按钮关闭它:按钮'OK'和'CANCEL'消失,FileFilter也消失

  •   
  • 我重新尝试关闭它。现在窗口变成了白色:它似乎没有响应。
  •   
  • 我重新尝试关闭它。它已关闭。
  •   
  • 我尝试重新打开刚关闭的FileChooserDialog。它不再起作用了,shell现在告诉我它出了什么问题。
  •   

我的代码很简单:

self.__apri_FileChooserDialog = Gtk.FileChooserDialog(title='', \
                                                                parent=None, \
                                                                action=Gtk.FileChooserAction.OPEN, \
                                                                buttons=(Gtk.STOCK_CANCEL, Gtk.ResponseType.CANCEL, \
                                                                Gtk.STOCK_OPEN, Gtk.ResponseType.OK))

self.__salva_FileChooserDialog.connect("delete-event", self.nascondi)

def nascondi(self, widget, args=()):
        widget.get_window().hide_on_delete()

1 个答案:

答案 0 :(得分:2)

def nascondi(self, widget, args=()):
        widget.get_window().hide_on_delete()

由于某种原因,你在这里获得了对话框小部件的GdkWindow,并尝试调用GdkWindow没有的方法。那不行......

在任何情况下,hide_on_delete()据我所知,在python中有点无用(因为参数的数量与信号不匹配)。幸运的是,自己动手并不困难。试试这个:

def on_delete_event (widget, event):
    widget.hide()
    return True

self.__salva_FileChooserDialog.connect("delete-event",
                                       on_delete_event)