Я создаю пользовательский класс, полученный из 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
, что указывает на ошибку.
Не могли бы вы предоставить минимальный пример, показывающий, как вы его подклассифицировали, как вы его создаете и т. Д.? –
Пожалуйста, отредактируйте ваш вопрос, чтобы показать [что вы пробовали до сих пор] (http://whathaveyoutried.com). Вы должны включить [mcve] кода, с которым у вас возникают проблемы, тогда мы можем попытаться помочь с конкретной проблемой. Вы также должны прочитать [ask]. –
Спасибо @TobySpeight, я думал, что не смог изменить свой вопрос на моем нынешнем уровне репутации. Я попытался сделать его более презентабельным и включить запрошенную информацию. –