#ifndef MAINWINDOW_H
#define MAINWINDOW_H
 
#include <QMainWindow>
#include <QTreeWidgetItem>
#include <QDir>
 
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 <QDir>
 
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);
}
 
qtree2018.txt · Last modified: 2018/03/05 16:25 by 147.32.8.115
 
Recent changes RSS feed Creative Commons License Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki