PyQt – как заставить getOpenFileName запомнить путь последнего открытия?

StackOverflow https://stackoverflow.com//questions/23002801

  •  20-12-2019
  •  | 
  •  

Вопрос

Согласно инструкциям getOpenFileName:

QString fileName = QFileDialog.getOpenFileName(this, tr("Open File"), 
                                          "/home",
                                          tr("Images (*.png *.xpm *.jpg)"));

Как я могу заставить диалог запомнить путь в последний раз, когда я его закрываю?

и что означает tr в tr("Open File")?

Спасибо

Это было полезно?

Решение

Если вы опустите dir аргумент (или передать пустую строку), диалог должен запомнить последний каталог:

filename = QtGui.QFileDialog.getOpenFileName(
               parent, 'Open File', '', 'Images (*.png *.xpm *.jpg)')

А тр Функция используется для перевода строк, видимых пользователю.Вы можете опустить его, если вы никогда не будете предоставлять переводы для своего приложения.

РЕДАКТИРОВАТЬ:

Похоже, что начальный каталог не может автоматически запоминаться на всех платформах/рабочих компьютерах, в зависимости от того, используете ли вы собственный диалог или нет.Если используется встроенный диалог Qt, начальный каталог всегда должен автоматически запоминаться на всех платформах (даже между вызовами приложения).Чтобы попробовать неродной диалог, выполните:

filename = QtGui.QFileDialog.getOpenFileName(
               parent, 'Open File', '', 'Images (*.png *.xpm *.jpg)',
               None, QtGui.QFileDialog.DontUseNativeDialog)

Альтернативно, вы можете использовать Конструктор QFileDialog, который будет всегда создать неродной диалог:

dialog = QtGui.QFileDialog(parent)
dialog.setWindowTitle('Open File')
dialog.setNameFilter('Images (*.png *.xpm *.jpg)')
dialog.setFileMode(QtGui.QFileDialog.ExistingFile)
if dialog.exec_() == QtGui.QDialog.Accepted:
    filename = dialog.selectedFiles()[0]
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top