2017-02-17 36 views
1

Я создаю пользовательский класс, полученный из QFileDialog, и я бы хотел применить опцию DontUseNativeDialog. Однако, похоже, это исключает раздел «Последние места» из поля со списком файлов, и я хотел бы восстановить его, если это возможно.Как я могу повторно заполнить «Недавние места» системы в неродном QFileDialog?

Есть ли способ сделать это без прямого доступа к списку путей «последних мест» системы и применения их к диалогу через setHistory()? Диалог предназначен для использования на нескольких платформах, и эта стратегия, похоже, может стать беспорядочной. (Если есть независимый от платформы способ доступа к списку «последних мест» системы в PyQt/Python, тем не менее, я все уши.)

Вот минимальный образец кода, который воспроизведет проблему.

w = QFileDialog() 
w.setOption(DontUseNativeDialog) 
w.show() 

Я попытался w.setHistory(w.history()), который добавляет текущий каталог «Последние места», но это не приводит к восстановлению нормальной ~ 5 последних каталогов, которые я хотел бы видеть в родном диалоге. Еще до того, как установлен параметр DontUseNativeDialog, w.history() вернет только текущий каталог, а не полный список последних мест, которые появляются в собственном диалоговом окне.

UPDATE: Я также попытался сохранить состояние диалогового окна, используя saveState(), перед установкой опции DontUseNativeDialog, например.

w = QFileDialog() 
state = w.saveState() 
w.setOption(DontUseNativeDialog) 
w.restoreState(state) 

но restoreState() возвращает False, что указывает на ошибку.

+1

Не могли бы вы предоставить минимальный пример, показывающий, как вы его подклассифицировали, как вы его создаете и т. Д.? –

+2

Пожалуйста, отредактируйте ваш вопрос, чтобы показать [что вы пробовали до сих пор] (http://whathaveyoutried.com). Вы должны включить [mcve] кода, с которым у вас возникают проблемы, тогда мы можем попытаться помочь с конкретной проблемой. Вы также должны прочитать [ask]. –

+0

Спасибо @TobySpeight, я думал, что не смог изменить свой вопрос на моем нынешнем уровне репутации. Я попытался сделать его более презентабельным и включить запрошенную информацию. –

ответ

1

Прошу прощения, что этот «недавний» список, о котором вы говорите, является конкретной реализацией операционной системы. Те же пути, которые вы видите там, вы увидите, если вы хотите запустить проводник (например).

В неродном диалоговом окне отображается специализированный пользовательский интерфейс, который отображает все записи, заданные с помощью setHistory(), но только те.

 Смежные вопросы

  • Нет связанных вопросов^_^