#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include
#include
#include
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
private slots:
void on_pushButton_clicked();
private:
Ui::MainWindow *ui;
void showDir (QTreeWidgetItem * target, QDir dir);
};
#endif // MAINWINDOW_H
#include "mainwindow.h"
#include "ui_mainwindow.h"
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
}
MainWindow::~MainWindow()
{
delete ui;
}
#include
void MainWindow::showDir (QTreeWidgetItem * target,
QDir dir)
{
QFileInfoList list = dir.entryInfoList
(QDir::NoDotAndDotDot | QDir::AllEntries, QDir::Name);
for (QFileInfo info : list)
{
QTreeWidgetItem * node = new QTreeWidgetItem;
node->setText (0, info.fileName());
node->setToolTip(0, info.absoluteFilePath());
QColor color;
if (info.isDir())
color = QColor ("red");
else
color= QColor ("blue");
node->setForeground (0, color);
target->addChild (node);
if (info.isDir())
showDir (node, QDir (info.absoluteFilePath()));
}
}
void MainWindow::on_pushButton_clicked()
{
QDir dir ("..");
QTreeWidgetItem * item = new QTreeWidgetItem;
item->setText (0, dir.absolutePath());
item->setForeground (0, QColor ("red"));
ui->treeWidget->addTopLevelItem (item);
showDir (item, dir);
item->setExpanded (true);
}