GtkFileChooserButton Режим «Выбрать папку» не возвращает пути

Я добавил GtkFileChooserButton в свое приложение через Glade. Он установлен в режим выбора папки. При нажатии на виджет отображается раскрывающийся список закладок Nautilus с опцией «прочее» в конце. Новое диалоговое окно выбора файла запускается при нажатии «Другое». Кнопка не связана ни с каким другим настраиваемым диалоговым окном выбора файлов.

Используемый мной сигнал подключения - «набор файлов», и я получаю полный путь к выбранной пользователем папке, используя Gtk.FileChooser.get_current_folder ().

Эта настройка работает нормально, если пользователь выбирает папку из «другого» варианта. Но если пользователь выбирает закладку из выпадающего списка, путь не возвращается. Как решить эту проблему?

Есть ли способ отключить этот выпадающий список и перейти непосредственно в диалог выбора файлов? Я хочу использовать GtkFileChooserButton только для того, чтобы пользователь мог получить предварительный просмотр выбранной папки.

3
задан 5 July 2012 в 11:33

4 ответа

GtkFileChooserButton в режиме выбора папки может возвращать URI папки. Используйте модуль urlparse для преобразования URI в путь. Это работает даже с закладками. Надеюсь, что это решит вашу проблему.

import urlparse

folder_uri = filechooserbutton_meas.get_uri()
folder = urlparse.urlparse(folder_uri).path 
0
ответ дан 5 July 2012 в 11:33

Поскольку сигнал набора файлов отправляется только тогда, когда пользователь изменяет файл, вам нужно будет выполнить вызов get_current_folder (), когда вам нужно знать путь, а не когда Установленный сигнал называется. Из документации я не вижу способа получить уведомление, когда пользователь выбирает путь из закладок в режиме выбора папки.

В качестве альтернативы вы можете использовать FileChooserButton в обычном режиме и просто использовать get_current_folder при отправке сигнала file-set. Это должно дать вам каталог, в котором находится пользователь, когда файл выбран. К сожалению, пользовательский интерфейс в этом случае также будет выглядеть странно, так как кнопка покажет имя файла, когда вы на самом деле используете каталог.

Кроме того, вам, вероятно, следует сообщить об ошибке в вышестоящий GTK + об этом сценарии использования и о том, как он не может быть использован. Сигнал набора файлов действительно должен быть признан устаревшим и переименован в набор путей и использоваться в обоих режимах.

0
ответ дан 5 July 2012 в 11:33

Я использовал сигнал current_folder_changed, унаследованный от GtkFileChooser, и, похоже, он работает даже с закладками.

0
ответ дан 5 July 2012 в 11:33

Эта настройка работает нормально, если пользователь выбирает папку из «другого» варианта. Но если пользователь выбирает закладку из выпадающего списка, путь не возвращается. Как решить эту проблему?

С GtkFileChooserButton, режим «выбор папки». Следующий код достаточно хорош:

def on_mybutton_selection_changed(self, w):
   print "selected folder: ", w.get_file().get_path()

Мы получаем путь к каталогу при каждом выборе раскрывающегося меню, даже в закладках.

Я использовал сигнал current_folder_changed, унаследованный от GtkFileChooser, и, похоже, он работает даже с закладками.

Осторожно с помощью w.get_current_folder (). Возвращает ПОСЛЕДНЮЮ выбранную папку, когда пользователь выбрал папку из «другого» варианта, а не выбранную папку в раскрывающемся меню.

0
ответ дан 5 July 2012 в 11:33

Другие вопросы по тегам:

Похожие вопросы: