函数:openDirListDialog()
返回:返回选中的多个或单个文件夹绝对路径
const QStringList ReportExportWidget::openDirListDialog()
{
QFileDialog dialog(0, QObject::tr("请选择文件路径"), "./");
dialog.setWindowFlags(Qt::WindowStaysOnTopHint);
dialog.setOption(QFileDialog::DontUseNativeDialog, true);
dialog.setFileMode(QFileDialog::Directory);
QListView *listView = dialog.findChild<QListView*>();
QTreeView *treeView = dialog.findChild<QTreeView*>();
if (listView && treeView) {
listView->setSelectionMode(QAbstractItemView::ExtendedSelection);
treeView->setSelectionMode(QAbstractItemView::ExtendedSelection);
if(dialog.exec()) {
return dialog.selectedFiles();
}
}
return QStringList();
}
函数:filePathList(const QStringList &filesName)
参数:filesName文件绝对路径列表
返回:返回选中文件夹以及其子文件夹绝对路径
QStringList ReportExportWidget::filePathList(const QStringList &filesName)
{
QStringList filesPath={};
filesPath.clear();
if(filesName.isEmpty())
{
return filesPath;
}
foreach(auto name,filesName)
{
QDir dir(name);
if(!dir.exists())
{
return filesPath;
}
QFileInfoList Info_list = dir.entryInfoList(QDir::Dirs | QDir::NoDotAndDotDot);
QListIterator<QFileInfo> Iterator(Info_list);
QFileInfo Info;
while (Iterator.hasNext())
{
Info = Iterator.next();
if (Info.isDir())
{
filesPath.append(Info.absoluteFilePath());
}
}
}
return filesPath;
}