2017-02-14 76 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();