2014-04-11 5 views

Antwort

12

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] 
+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. –

+0

@liaozd. Sorry, 'None' funktioniert nur mit Python3 - benutze stattdessen eine leere Zeichenkette (funktioniert mit Python2 und Python3). – ekhumoro

+0

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. –

Verwandte Themen