QT中利用QTreeWidget显示文件夹中的所有子文件夹和文件,并全部设置复选框,请给我完整代码
时间: 2024-02-03 11:12:24 浏览: 174
以下是一个基于Qt的示例代码,可以实现显示文件夹中的所有子文件夹和文件,并设置复选框:
#include <QApplication>
#include <QDir>
#include <QFileInfo>
#include <QTreeWidget>
#include <QTreeWidgetItem>
void addFiles(QTreeWidgetItem *parent, const QString &path) {
QDir dir(path);
QStringList filters;
filters << "*";
dir.setFilter(QDir::Files | QDir::Dirs | QDir::NoDotAndDotDot);
dir.setNameFilters(filters);
QFileInfoList fileList = dir.entryInfoList();
for (int i = 0; i < fileList.size(); ++i) {
QFileInfo fileInfo = fileList.at(i);
QTreeWidgetItem *item = new QTreeWidgetItem(parent);
item->setText(0, fileInfo.fileName());
item->setCheckState(0, Qt::Unchecked);
if (fileInfo.isDir()) {
addFiles(item, fileInfo.filePath());
}
}
}
int main(int argc, char *argv[]) {
QApplication app(argc, argv);
QTreeWidget *treeWidget = new QTreeWidget();
treeWidget->setColumnCount(1);
treeWidget->setHeaderHidden(true);
addFiles(treeWidget->invisibleRootItem(), "/path/to/folder");
treeWidget->show();
return app.exec();
}
在这个示例中,我们使用了 QTreeWidget
控件来显示文件夹中的所有文件和子文件夹。 addFiles
函数是一个递归函数,用于向 QTreeWidget
中添加子项。对于每个文件和文件夹,我们创建一个 QTreeWidgetItem
,并设置它的文本和复选框状态。如果当前项是一个文件夹,我们递归调用 addFiles
函数来添加它的子文件和子文件夹。
请注意,上面的代码仅是一个示例,你需要将 /path/to/folder
替换为你要显示的文件夹的实际路径。
相关推荐


















