PyQt getOpenFileName默认目录

时间:2013-03-26 00:48:36

标签: macos python-2.7 pyqt pyqt4 qfiledialog

我正在使用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/

中打开

2 个答案:

答案 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