2016-07-22 10 views
1

ich habe ein QFileDialog Objekt, in dem ich die Benutzer benötigen ein VerzeichnisQFileDialog Preselect Verzeichnis

QFileDialog dlg(this, tr("Select directory")); 
dlg.setDirectory(currentDir); 
dlg.setFileMode(QFileDialog::Directory); 
dlg.setOptions(QFileDialog::ShowDirsOnly | QFileDialog::ReadOnly); 

meine Ordnerstruktur zum Beispiel

<root> 
    <dir1> 
    <dir2> 

ist zu wählen, wenn die currentDir<root>/dir1 ist mag ich den Dialog Zeigen Sie auf das <root> Verzeichnis und wählen Sie dir1 im Dialogfeld (nicht nur in Textform, sondern auch, wenn Sie darauf geklickt haben)

ist das möglich und wie?

/edit: ich versuchte

dlg.setDirectory("<root>"); 
dlg.selectFile("dir1"); 

, die im Dialog führte das richtige Verzeichnis und füllen Sie die filename Linie bearbeiten zu setzen ist aber nicht in der Liste der Dateien auswählen (aber das ist ganz notwendig, wenn mit viele ähnliche dir-Namen).

prost

+0

habe ich versucht, einige Dinge mit 'QFileDialog' aber es hat nicht funktioniert. Qt 5.6.0 hier, obwohl. Die Verwendung von 'QUrl' hat das Verhalten nicht verändert. Weder die Auswahl wird angepasst noch das Textfeld ausgefüllt. Dies könnte ein Fehler sein. Auch einige Flaggen ohne Erfolg anzupassen. Wie die Dokumentation sagt "SelectFile" sollte der Weg sein. Vielleicht gibt es hier ein Problem. – maxik

Antwort

1

selectFile() sollte es tun:

QFileDialog dlg(this, tr("Select directory")); 

if(currentDir == "<root>/dir1") { 
    dlg.selectFile(currentDir); 
} 
else { 
    dlg.setDirectory(currentDir); 
} 

dlg.setFileMode(QFileDialog::Directory); 
dlg.setOptions(QFileDialog::ShowDirsOnly | QFileDialog::ReadOnly); 
+0

nett, aber das ist nur die Hälfte des Problems. siehe Bearbeiten in Frage – Zaiborg

+0

Haben Sie versucht, den Dateimodus vor selectFile() zu setzen? – wasthishelpful

+0

ja; im Grunde genommen nimmst du meinen ersten Code-Ausschnitt und fügst das Bearbeitungsmaterial hinzu – Zaiborg

Verwandte Themen