2013-03-14 6 views
8

Ich versuche, "Speichern unter ..." -Dialog in Mac OS X zu erstellen. Aber ich möchte nicht QFileDialog::getSaveFileName() Funktion verwenden, weil das Dialogfeld erstellt von dieser Funktion ist NICHT wirklich-native in Mac OS X Lion. So entscheide ich Dialog als QFileDialog Objekt zu erstellen:QFileDialog: wie man Standarddateiname in "Speichern als ..." Dialog einstellt

auto export_dialog(new QFileDialog(main_window)); 
export_dialog->setWindowModality(Qt::WindowModal); 
export_dialog->setFileMode(QFileDialog::AnyFile); 
export_dialog->setAcceptMode(QFileDialog::AcceptSave); 

Alle funktioniert gut, außer ein Problem. Ich kann den Standardnamen für die gespeicherte Datei nicht festlegen, daher muss der Benutzer diesen Namen jedes Mal manuell eingeben. Ich weiß, dass Funktion QFileDialog::getSaveFileName() erlaubt, Standarddateiname über drittes Argument, dir (http://qt-project.org/doc/qt-4.8/qfiledialog.html#getSaveFileName) zu setzen. Aber wie setzt man diesen Standardnamen ohne diese Funktion?

Ich kann Standard-Suffix für gespeicherte Datei über QFileDialog::setDefaultSuffix() Funktion, aber ich muss den ganzen Standardnamen, nicht nur Standard-Suffix setzen.

Ich habe versucht, QFileDialog::setDirectory() Funktion zu verwenden, aber es legt nur Verzeichnis, wo zu speichern, ohne Name der gespeicherten Datei.

Ich verwende Qt 4.8.1 unter Mac OS X Lion.

Vielen Dank im Voraus für Ihre Hilfe.

+3

Frage entfernt wird. Ich fand, dass Standarddateiname durch QFileDialog :: selectFile() -Funktion gesetzt werden kann. Vielen Dank. –

+2

Es gibt keine Frage zu entfernen. Wenn jemand in der Zukunft dasselbe Problem herausfinden wird, wie kann er Ihre Antwort finden? –

+0

Ich habe es hier gefunden: http://www.qtcentre.org/threads/49434-QFileDialog-set-default-name?highlight=QFileDialog. –

Antwort

2

Ich suchte google nach set default filename qfiledialog und passierte quer durch diese Diskussion.

Ich habe festgestellt, dass selectFile("myFileName"); nur funktioniert, wenn die Datei tatsächlich existiert. In meinem Fall besteht die Absicht darin, eine neue Datei mit der Option zu erstellen, eine vorhandene Datei zu überschreiben.

Die Lösung, die für mich (Qt 5.3.2) arbeitete, war wie folgt:

QFileDialog svDlg; 

QString saveFileName = svDlg.getSaveFileName(this, caption, preferredName, filter); 

In dem obigen Beispiel ist ein PreferredName QString, die „C enthält:/pre-selected-Namen. txt“

Hoffnung, die

Verwandte Themen