如何让getOpenFileName记住上次打开路径?
根据getOpenFileName的说明:
QString fileName = QFileDialog.getOpenFileName(this, tr("Open File"),
"/home",
tr("Images (*.png *.xpm *.jpg)"));
我怎么才能让这个对话框在我关闭它的时候记住上次的路径呢?
还有,tr("Open File")
中的tr是什么意思呢?
谢谢
1 个回答
22
如果你不提供dir
这个参数(或者传入一个空字符串),对话框应该会记住上次使用的目录:
filename = QtGui.QFileDialog.getOpenFileName(
parent, 'Open File', '', 'Images (*.png *.xpm *.jpg)')
tr函数是用来翻译用户能看到的字符串的。如果你的应用程序不需要提供翻译,可以不使用这个函数。
编辑:
看起来在某些平台或桌面环境下,起始目录可能不会自动记住,这取决于你是否使用本地对话框。如果使用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]