2017-02-14 75 views
0

我使用下面的代碼來構建文件名的QStringList中:QFileDialog:選擇目錄和文件

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

我怎樣才能改變這個,所以我可以選擇目錄中呢?

我看了看:

 dialog.setFileMode(QFileDialog::AnyFile); 

,但我不明白如何與我的代碼中使用它。

+0

我一派,發現[此](http://www.qtcentre.org/threads/43841-QFileDialog-to-select-files-AND-folders),是不是一個可行的解決方案? – Steeve

+0

謝謝,這個工程。 – Alan

回答

0

上面評論中鏈接的這段代碼解決了我的問題。

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();