mainwindow.h
public:
void showDir (QString path);
private:
void showSubdir (QTreeWidgetItem * branch, QDir dir);
mainwindow.cpp
#include "mainwindow.h"
#include
#include
#include
using namespace std;
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent)
{
setupUi(this);
showDir ("..");
}
void MainWindow::showDir (QString path)
{
QDir dir0 (path);
QDir dir (dir0.absolutePath());
auto branch = new QTreeWidgetItem;
branch->setText (0, dir.dirName ());
branch->setToolTip (0, dir.absolutePath());
treeWidget->addTopLevelItem (branch);
showSubdir (branch, dir);
}
void MainWindow::showSubdir (QTreeWidgetItem *branch, QDir dir)
{
// cout << dir.absolutePath().toStdString() << endl;
for (auto f : dir.entryInfoList
(QDir::NoDotAndDotDot | QDir::Files | QDir::Dirs))
{
auto item = new QTreeWidgetItem;
item->setText (0, f.fileName());
item->setToolTip (0, f.absoluteFilePath());
branch->addChild (item);
if (f.isDir())
showSubdir (item, QDir (f.absoluteFilePath()));
}
branch->setExpanded (true);
}
void MainWindow::on_action_Quit_triggered()
{
close ();
}