Wenn Sie das dir
Argument (oder passieren in einem leeren String) weglassen, sollte der Dialog das letzte Verzeichnis erinnern:
filename = QtGui.QFileDialog.getOpenFileName(
parent, 'Open File', '', 'Images (*.png *.xpm *.jpg)')
Die tr Funktion zum Übersetzen Benutzer sichtbaren Strings verwendet wird . Sie können es weglassen, wenn Sie niemals Übersetzungen für Ihre Anwendung bereitstellen.
EDIT:
Es scheint, dass das Startverzeichnis auf allen Plattformen/Desktops nicht automatisch daran erinnert werden kann, je nachdem, ob Sie die native Dialog oder nicht verwenden. Wenn das integrierte Qt-Dialogfeld verwendet wird, sollte das Startverzeichnis immer automatisch auf allen Plattformen (auch zwischen den Aufrufen der Anwendung) gespeichert werden. Um den nicht-native Dialog zu versuchen, zu tun:
filename = QtGui.QFileDialog.getOpenFileName(
parent, 'Open File', '', 'Images (*.png *.xpm *.jpg)',
None, QtGui.QFileDialog.DontUseNativeDialog)
Alternativ können Sie die QFileDialog constructor verwenden, das wird immer einen nicht-native-Dialog:
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]
Danke für deine Antwort, aber es funktioniert nicht. Es gibt mir das: TypeError: Argument 3 von QFileDialog.getOpenFileName() hat einen ungültigen Typ. Ich benutze PyQt4, vergiss es zu sagen. –
@liaozd. Sorry, 'None' funktioniert nur mit Python3 - benutze stattdessen eine leere Zeichenkette (funktioniert mit Python2 und Python3). – ekhumoro
ja Ich benutze Python2.7 und PyQt4 in meinem CentOS6.4, aber die leere Zeichenfolge scheint nicht funktionieren für mich, es öffnet immer den Python-Skript-Ordner als Standardposition. –