Удалить событие для FileChooserDialog

я хотел бы скрыть FileChooserDialog, когда я удаляю его окно. Я могу просто скрыть его с помощью кнопки «Отмена», но когда я закрываю его из своего окна, он не отвечает, а затем вылетает.

Просмотреть сбой здесь

Сбой происходит, когда я делаю это последовательно:

  • открываю (работает нормально)

  • Пытаюсь закрыть его из окна кнопкой "Х": исчезают кнопки "ОК" и "ОТМЕНА" и FileFilter тоже

  • Я снова пытаюсь закрыть его. Теперь окно стало белым: кажется, оно не отвечает.

  • Я снова пытаюсь закрыть его. Закрыто.

  • Я пытаюсь повторно открыть только что закрытый FileChooserDialog. Это больше не работает, и теперь оболочка сообщает мне, что не так.

Мой код прост:

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()

person FrancescoN    schedule 10.02.2014    source источник


Ответы (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)
person Jussi Kukkonen    schedule 10.02.2014
comment
2 ошибки, может быть, лучшая из них: я подключал событие к неправильному FileChooserDialog :| - person FrancescoN; 11.02.2014