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

в соответствии с инструкциями getOpenFileName:

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

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

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

спасибо

1 ответов


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

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

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

редактировать:

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

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]