Seite 1 von 1

nur Ordner auswählen mit QFileDialog

Verfasst: 11. November 2005 16:47
von drmetal
hallo,

ich möchte einen QfileDialog öffnen um eine Reihe Verzeichnisse zu markieren um sie dann als QstringList abzuspeichern. komme da jetzt nicht weiter. im Prinzip bräuchte ich was wie getExistingDirectories.

mein code sieht ziehmlich gewöhnlich aus:

QStringList directories = QFileDialog::getOpenFileNames(
this, "Select Directories",
openDirectoriesPath, QFileDialog::ShowDirsOnly);

das gibt den Fehler:

mainwindow.cpp:112: error: no matching function for call to `QFileDialog::getOpe
nFileNames(MainWindow* const, const char[19], QString&, QFileDialog::Option)'
C:/qt/4.0.1/include/QtGui/../../src/gui/dialogs/qfiledialog.h:161: note: candida
tes are: static QStringList QFileDialog::getOpenFileNames(QWidget*, const QStrin
g&, const QString&, const QString&, QString*, QFlags<QFileDialog::Option>)
mainwindow.cpp:110: warning: unused variable 'directories'

das sollte ja irgendwie einfach sein, aber ich wurschtle schon ne weile rum. ich brauche nur die ordnernamen als QStringList. benutze qt 4.0.1

wäre dankbar für eure hilfe

Heiko

Verfasst: 11. November 2005 17:38
von Timewarp
Nunja sieht für mich auch recht einfach aus.

Parameterliste von getOpenFileNames:

Code: Alles auswählen

QStringList QFileDialog::getOpenFileNames ( QWidget * parent = 0, const QString & caption = QString(), const QString & dir = QString(), const QString & filter = QString(), QString * selectedFilter = 0, Options options = 0 )
Das sind wenn ich richtig zähle: 1 Widget gefolgt von 4 Strings und dann die Options. Wohingegen dein Aufruf lediglich 1 Widget gefolgt von 2 Strings und dann den Options beinhaltet.
Die Funktion mit den Parametern wie du sie aufrufen willst gibt es eben leider nicht.

Verfasst: 14. November 2005 11:29
von drmetal
habe das jetzt geändert und angepasst. Man kann jetzt ordner auswählen, aber qt öffnet diese dann automatisch und nimmt die bedingung showDirsOnly nicht ernst.

Verfasst: 14. November 2005 11:55
von macman
Dafür ist getExistingFileNames ja auch gedacht. Wenn Du Verzeichnisse haben willst, dann mußt Du getExistingDirectory nehmen, was aber nur die Auswahl eines Verzeichnisses erlaubt. Wenn Du mehr willst, solltest Du hier mal lesen und deinen Bedürfnissen anpassen.