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 toQFileDialog::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 2

    C:\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 toQFileDialog::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 2

    C:\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.


Anmelden zum Antworten