brauche Hilfe beim QFileDialog
-
hallo,
ich möchte einen QfileDialog öffnen um eine Reihe Verzeichnisse zu markieren um sie dann als QstringList abzuspeichern. komme da jetzt nicht weiter. mein code sieht ziehmlich gewöhnlich aus:
QString openDirectoriesPath;
QStringList directories = QFileDialog::getOpenFileNames(
this, "Select Directories",
openDirectoriesPath, ShowDirsOnly);habe mit dem stat. dialog und selber erstellten rumgespielt. das problem ist meistens, das er die Optionen nicht kennen will.
wäre dankbar für eure hilfe
gruüße
Heiko
-
Wie sieht denn der Fehler genau aus?
-
showDirsOnly undeclared (first use this function)
-
QFileDialog::ShowDirsOnly
-
danke, das hatte ich auch schon probiert
da kommt dann aber:no matching function to call for QFileDialog::getOpenFileNames( *, QFileDialog::Option) .... possible candidates are QFileDialog::get....(,QFlags QFileDialog::Option)
-
drmetal schrieb:
danke, das hatte ich auch schon probiert
da kommt dann aber:no matching function to call for QFileDialog::getOpenFileNames( *, QFileDialog::Option) .... possible candidates are QFileDialog::get....(,QFlags QFileDialog::Option)
Ich glaube nicht, dass in der Fehlermeldung .... steht. Poste doch die ganze Fehlermeldung. Es wird doch wohl möglich sein, diesen Fehler zu isolieren und komplett zu posten.
Du solltest immer möglichst komplette Informationen zu deinem Problem posten. Und da es dein Problem ist und nicht unseres, solltest du dir die Zeit nehmen es so aufzubereiten, dass man schnell helfen kann. Und falls es noch nicht klar war: Fehlermeldungen müssen immer komplett per Copy und Paste gepostet werden. Ich habe schon oft genug gesehen, dass jemand beim Abschreiben die entscheidende Stelle ausgebügelt hat.
-
hier die komplette fehlermeldung:
mainwindow.cpp: In member function
void MainWindow::loaddirectory()': 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*, QFlagsQFileDialog::Option)
mainwindow.cpp:110: warning: unused variable 'directories'
mingw32-make[1]: *** [debug\mainwindow.o] Error 1
mingw32-make[1]: Leaving directory `C:/Heiko/c++/an'
mingw32-make: *** [debug] Error 2C:\Heiko\c++\an>
-
drmetal schrieb:
hier die komplette fehlermeldung:
mainwindow.cpp: In member function
void MainWindow::loaddirectory()': 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*, QFlagsQFileDialog::Option)
mainwindow.cpp:110: warning: unused variable 'directories'
mingw32-make[1]: *** [debug\mainwindow.o] Error 1
mingw32-make[1]: Leaving directory `C:/Heiko/c++/an'
mingw32-make: *** [debug] Error 2C:\Heiko\c++\an>
Legen wir einfach mal die Signaturen übereinander:
(MainWindow* const, const char[19], QString&, QFileDialog::Option) (QWidget*, const QString&, const QString&, const QString&, QString*, QFlags<QFileDialog::Option>)
Bei der oberen Signatur sehe ich nur 5 Argumente. Bei der unteren sind es 6.
-
komme da nicht weiter. muss das irgendwie anders lösen.
-
Du musst einfach alle sechs Parameter übergeben:
QString QFileDialog::getSaveFileName ( QWidget * parent = 0, const QString & caption = QString(), const QString & dir = QString(), const QString & filter = QString(), QString * selectedFilter = 0, Options options = 0 ) [static]
Ich vermute mal dass es dann bei dir so aussehen sollte:
QFileDialog::getSaveFileName (this, "Select Directories", openDirectoriesPath, QString(), 0, QFileDialog::ShowDirsOnly);
-
danke. das funktioniert. leider öffnet qt nach der auswahl der ordner diese und zeigt die dateien an. nimmt die option showDirsOnly wohl nicht so ernst.