【问题标题】:Delete event for a FileChooserDialogFileChooserDialog 的删除事件
【发布时间】:2014-02-10 17:16:56
【问题描述】:

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

View the crash here

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

  • 我打开它(它工作正常)

  • 我尝试从窗口“X”按钮关闭它:“确定”和“取消”按钮消失,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()

【问题讨论】:

    标签: dialog gtk pygtk filechooser


    【解决方案1】:
    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)
    

    【讨论】:

    • 2 个错误,也许最好的一个是:我将事件连接到错误的 FileChooserDialog :|
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-18
    • 2017-12-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多