Qt 打开目录多选对话框

cpp 复制代码
/// 打开目录多选对话框(禁用原生对话框以支持多选)
static QStringList pickMultipleDirectories(QWidget *parent)
{
    QFileDialog dialog(parent, QStringLiteral("选择目录(可多选)"), QDir::homePath());
    dialog.setFileMode(QFileDialog::Directory);
    dialog.setOption(QFileDialog::DontUseNativeDialog, true);

    // 通过内部 QTreeView 启用多选
    auto *tree = dialog.findChild<QTreeView*>();
    if (tree)
        tree->setSelectionMode(QAbstractItemView::MultiSelection);

    QStringList result;
    if (dialog.exec() == QDialog::Accepted)
        result = dialog.selectedFiles();
    return result;
}

我测试过,在Windows和银河麒麟下都可以正常运行,功能也正确。

..\DataRecord\main.cpp 215 ("D:/Books", "D:/Books/雷达", "D:/Books/心理", "D:/Books/学习书籍")

打印信息:可以看到,结果是正确的。

相关推荐
扶尔魔ocy11 小时前
【qt openGL入门笔记】坐标系统和摄像机
qt·opengl
C++ 老炮儿的技术栈1 天前
main函数之后的调用
c语言·c++·人工智能·qt·mfc·c
沫璃染墨1 天前
《Qt从零入门系列(十二):Qt文件操作详解——从QFile读写到QFileInfo与记事本实战》
开发语言·网络·c++·qt·交互·信号处理·文件
时间的拾荒人1 天前
Qt 界面布局与容器控件详解:从分组框到布局管理器
开发语言·qt·面试
王铭诗1 天前
QT界面安装
qt
程序员老陆1 天前
嵌入式 Qt:QWidgets 还是 QML / Qt Quick?
开发语言·qt
待什么青丝1 天前
【外设】之大彩串口显示屏
单片机·qt·显示器
Frank_refuel1 天前
深入理解RpcRouter(远端调用模块)
开发语言·qt
Quz2 天前
QML 分隔线:Rectangle、菜单与工具栏分隔线用法
qt
Quz2 天前
QML PathView 入门:直线路径与曲线路径
qt