2017-02-14 11 views
0

ich den Code unter Verwendung eines QStringList von Dateinamen zu erstellen:QFileDialog: Auswählen von Verzeichnissen und Dateien

QStringList filenames = QFileDialog::getOpenFileNames(this,"",QDir::currentPath()); 

Wie kann ich das ändern, so kann ich auch Verzeichnisse wählen?

Ich sah:

 dialog.setFileMode(QFileDialog::AnyFile); 

aber ich habe nicht, wie es mit meinem Code zu verwenden.

+0

ich gegoogelt und fand [diese] (http://www.qtcentre.org/threads/43841-QFileDialog-to-select-files-AND-folders), es ist nicht eine funktionierende Lösung? – Steeve

+0

Danke, das funktioniert. – Alan

Antwort

0

Dieses Code-Snippet im obigen Kommentar löst mein Problem.

QFileDialog* _f_dlg = new QFileDialog(this); 
    _f_dlg->setFileMode(QFileDialog::Directory); 
    _f_dlg->setOption(QFileDialog::DontUseNativeDialog, true); 

    // Try to select multiple files and directories at the same time in QFileDialog 
    QListView *l = _f_dlg->findChild<QListView*>("listView"); 
    if (l) { 
    l->setSelectionMode(QAbstractItemView::MultiSelection); 
    } 
    QTreeView *t = _f_dlg->findChild<QTreeView*>(); 
    if (t) { 
    t->setSelectionMode(QAbstractItemView::MultiSelection); 
    } 

    int nMode = _f_dlg->exec(); 
    QStringList _fnames = _f_dlg->selectedFiles(); 
Verwandte Themen