PyQt - 如何使 getOpenFileName 记住上次打开路径?
-
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)')
这 t 函数用于翻译用户可见的字符串。如果您永远不会为您的应用程序提供翻译,则可以省略它。
编辑:
似乎启动目录可能不会在所有平台/桌面上自动记住,具体取决于您是否使用本机对话框。如果使用 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]
不隶属于 StackOverflow