2013-03-26 1 views
1

Qt.Gui.QFileDialog.getOpenFileName 메소드를 사용하여 파일을 엽니 다. 기본 파일 디렉토리를 "/Users/me/Documents/data/2013/today/"으로 설정하면 "today" 폴더가 선택된 "/Users/me/Documents/data/2013/"으로 대화 상자가 열립니다. 창에서 올바른 기본 폴더를 열려면 어떻게합니까?PyQt getOpenFileName 기본 디렉토리

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

가장 많이 발생하는 이유는 파일을 열 것을 요청할 때 파일이 존재하지 않기 때문입니다. 폴더 열기 용 : 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_()) 
+0

나는 디렉토리를 반환하고 싶지 않습니다. 필요한 경우 반환 된 문자열을 파싱하여 디렉토리를 가져올 수 있습니다. 올바른 디렉토리에서 OpenFileDialog 창이 열리길 원합니다. 나는 그 질문을 명확히하기 위해 편집했다. – JMD

+0

@JMD 데비안 OS에서 이러한 동작이 나타나지 않습니다. 질문을 다시 확인하고 내 [업데이트 된 답변] (http://stackoverflow.com/a/15634376/1006989)을 확인하십시오. –