FileChooserDialog в pygtk

Вопрос прост: я просто хочу открывать диалоговое окно FileChooserDialog столько раз, сколько захочу, без повторного создания одного и того же виджета.

Сигнал/метод уничтожения не для меня, потому что я не хочу уничтожать ссылку на объект, мне просто нужно скрыть FileChooserDialog

Проблема в том, что с помощью этого кода я просто получаю диалог с кнопками, но больше ничего (без путей, без списка файлов, без папок ...), только кнопки и серое пустое окно.

ЗДЕСЬ НИЖЕ КОД:

self.__file_chooser_dialog = gtk.FileChooserDialog("Open..",
                                        None,
                                        gtk.FILE_CHOOSER_ACTION_OPEN,
                                        (gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL,
                                        gtk.STOCK_OPEN, gtk.RESPONSE_OK))

def file_chooser_event(self, widget, data=None):
        self.__file_chooser_dialog.show_all()
        response = self.__file_chooser_dialog.run()
        if response == gtk.RESPONSE_OK:
            print self.__file_chooser_dialog.get_filename(), 'selected'
        elif response == gtk.RESPONSE_CANCEL:
            print 'Closed, no files selected'

        self.__file_chooser_dialog.hide_all()


self.__load_config=gtk.Button('Carica file di configurazione\n(nome__file.ini)')
self.__load_config.connect('clicked', self.file_chooser_event)

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


Ответы (2)


Вам следует рассмотреть возможность использования gtk.Widget::hide_on_delete, который существует для этой цели.

person liberforce    schedule 09.12.2013

я пробовал несколько способов заставить его работать... и вам просто нужно сделать это редактирование:

self.__file_chooser_dialog.show_all() -----> self.__file_chooser_dialog.show()

self.__file_chooser_dialog.hide_all() -----> self.__file_chooser_dialog.hide()

Можете ли вы объяснить мне, почему это работает?!

person FrancescoN    schedule 08.12.2013