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/学习书籍")

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

相关推荐
ShineWinsu1 天前
对于Qt:QTabWidget常见属性的解析
开发语言·数据库·c++·qt·浏览器·qtabwidget·标签页
慧都产品智能化4 天前
Qt 表格升级攻略:复用已有编辑器,减少重复开发
c++·qt·编辑器·qt6.3
ShineWinsu4 天前
对于Qt:QTableWidget常见属性以及QTableWidgetItem类的解析
开发语言·c++·qt·gui·客户端·表格·qtablewidget
ShineWinsu4 天前
对于Qt:QListWidget常见属性以及QListWidgetItem类的解析
开发语言·c++·qt·客户端·列表·qlistwidget·qlistwidgetitem
ShineWinsu4 天前
对于Qt:QDial常见属性以及信号的解析
开发语言·c++·qt·gui·客户端·旋钮·qdial
宛 禾5 天前
Qt 事件系统完全指南:从事件循环到实战避坑
qt
敲上瘾5 天前
Qt Widgets入门:项目模板解析与Hello World
开发语言·数据库·c++·qt·ui·qt6.3
MOONICK6 天前
QT元数据
开发语言·qt
橙橙笔记6 天前
QT的学习第四部分
linux·qt·学习·音视频
sycmancia6 天前
Qml——信号连接、自定义信号
qt