QFileDialog:选择目录和文件
QFileDialog: Selecting directories and files
我正在使用下面的代码构建文件名的 qstringlist:
QStringList filenames = QFileDialog::getOpenFileNames(this,"",QDir::currentPath() );
如何更改此设置以便我也可以 select 个目录?
我看过:
dialog.setFileMode(QFileDialog::AnyFile);
但我不知道如何在我的代码中使用它。
上面评论中链接的代码片段解决了我的问题。
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();
我试过了,但我的结果有点奇怪:我可以 select 文件夹和文件的组合,只要第一个 selected 项目是文件夹。
因此,当我 select 一个文件夹、一个文件和一个文件夹时,我可以继续单击按钮并检索结果:请参见下面 link 中的屏幕截图。
First folder selected, then file: OK
但是,当第一项是文件(后面是文件夹,或者只是一个文件)时,继续按钮不可用...所以只 select 一个或多个文件是不可用的在这个实现中似乎对我可用,如另一个屏幕截图所示:
First file selected, then folder: not able to proceed
有没有什么方法可以使用与 QFileDialog 相同的代码,让您可以
- select 一个或多个没有 selecting 文件夹的文件
- select正在处理一个或多个文件夹而不select正在处理文件
- select不管select离子顺序如何组合文件和文件夹
我正在使用下面的代码构建文件名的 qstringlist:
QStringList filenames = QFileDialog::getOpenFileNames(this,"",QDir::currentPath() );
如何更改此设置以便我也可以 select 个目录?
我看过:
dialog.setFileMode(QFileDialog::AnyFile);
但我不知道如何在我的代码中使用它。
上面评论中链接的代码片段解决了我的问题。
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();
我试过了,但我的结果有点奇怪:我可以 select 文件夹和文件的组合,只要第一个 selected 项目是文件夹。
因此,当我 select 一个文件夹、一个文件和一个文件夹时,我可以继续单击按钮并检索结果:请参见下面 link 中的屏幕截图。
First folder selected, then file: OK
但是,当第一项是文件(后面是文件夹,或者只是一个文件)时,继续按钮不可用...所以只 select 一个或多个文件是不可用的在这个实现中似乎对我可用,如另一个屏幕截图所示:
First file selected, then folder: not able to proceed
有没有什么方法可以使用与 QFileDialog 相同的代码,让您可以
- select 一个或多个没有 selecting 文件夹的文件
- select正在处理一个或多个文件夹而不select正在处理文件
- select不管select离子顺序如何组合文件和文件夹