我正在使用Qt.Gui.QFileDialog.getOpenFileName方法打开文件。如果我将默认文件目录设置为"/Users/me/Documents/data/2013/today/"
,则会在"/Users/me/Documents/data/2013/"
选中"today"
文件夹的情况下打开对话框。如何在窗口中打开正确的默认文件夹?
fname = QtGui.QFileDialog.getOpenFileName(self, 'Open file', "/Users/me/Documents/data/2012/20121102/images/",'*.npy')
在/Users/me/Documents/data/2012/20121102
中打开一个对话框。我希望窗口在/Users/me/Documents/data/2012/20121102/images/
答案 0 :(得分:0)
最可能的原因是在您请求打开文件时该文件不存在。要打开文件夹,请使用QtGui.QFileDialog.getExistingDirectory
:
#!/usr/bin/env python
#-*- coding:utf-8 -*-
from PyQt4 import QtGui, QtCore
class MyWindow(QtGui.QWidget):
def __init__(self, parent=None):
super(MyWindow, self).__init__(parent)
self.pushButtonOpen = QtGui.QPushButton(self)
self.pushButtonOpen.setText("Open Folder")
self.pushButtonOpen.clicked.connect(self.on_pushButtonOpen_clicked)
self.layoutHorizontal = QtGui.QHBoxLayout(self)
self.layoutHorizontal.addWidget(self.pushButtonOpen)
@QtCore.pyqtSlot()
def on_pushButtonOpen_clicked(self):
folderName = QtGui.QFileDialog.getExistingDirectory(
self, "Open Directory",
"/path/to/folder",
QtGui.QFileDialog.ShowDirsOnly | QtGui.QFileDialog.DontResolveSymlinks,
)
if __name__ == "__main__":
import sys
app = QtGui.QApplication(sys.argv)
app.setApplicationName('MyWindow')
main = MyWindow()
main.show()
sys.exit(app.exec_())
答案 1 :(得分:0)
为了某人的信息(即使过去了 8 年)
对于 PyQt5 中的默认文件夹,您可以将 directory
参数传递给 getOpenFileName
。