2013-03-26 3 views
1

Я использую метод Qt.Gui.QFileDialog.getOpenFileName для открытия файла. Если я установил каталог файлов по умолчанию на "/Users/me/Documents/data/2013/today/", откроется диалоговое окно "/Users/me/Documents/data/2013/" с выбранной папкой "today". Как получить правильную папку по умолчанию, которая будет открыта в окне?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 Я не получаю такое поведение в своей операционной системе Debian, пожалуйста, дважды проверьте свой вопрос и проверите мой [обновленный ответ] (http://stackoverflow.com/a/15634376/1006989) – 2013-03-27 09:35:25

Смежные вопросы