qt c++ 我需要一个功能,对话框可以一次选择多个文件夹的功能,
时间: 2024-12-30 21:40:01 浏览: 16
在Qt C++中,你可以利用QFileDialog类来创建一个能够选择多个文件夹的对话框。以下是一个简单的步骤说明:
1. 引入所需的头文件:
```cpp
#include <QApplication>
#include <QFileDialog>
```
2. 创建主窗口并设置事件处理器:
```cpp
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
// 窗口对象
QWidget *window = new QWidget();
window->setWindowTitle("选择多个文件夹");
}
```
3. 实现选择文件夹的功能:
```cpp
void selectFolders()
{
QString selectedFolders;
QDirIterator it(QDir::rootPath()); // 从根目录开始
QFileDialog dialog(window, tr("选择文件夹"), QDirIterator::rootPath(), tr("Directories (*.*)"));
dialog.setFileMode(QFileDialog::Directory);
dialog.setFilter(QDir::Dirs | QDir::NoDotAndDotDot); // 只显示目录,排除隐藏文件
if (dialog.exec()) { // 如果用户点击了“确定”按钮
foreach(const QString &path, dialog.selectedFiles()) {
selectedFolders += QDir(path).absolutePath() + " ";
}
qDebug() << "Selected folders:" << selectedFolders; // 打印所选文件夹路径
}
}
```
4. 将对话框关联到一个按钮或其他触发事件上:
```cpp
QPushButton *selectButton = new QPushButton(tr("选择文件夹"), window);
connect(selectButton, &QPushButton::clicked, this, &MyClass::selectFolders); // MyClass是你自定义的类名
```
5. 显示窗口和处理主循环:
```cpp
window.show();
return app.exec(); // 进入主消息循环
}
```
阅读全文