[[qt:strom]]
 

Strom

Do okna přidat treeWidget typu QTreeWidget

#include "mainwindow.h"
#include "ui_mainwindow.h"
 
MainWindow::MainWindow (QWidget *parent)
    :
    QMainWindow (parent),
    ui (new Ui::MainWindow)
{
    ui->setupUi (this);
 
    ui->treeWidget->header()->hide();
 
    QTreeWidgetItem * root = new QTreeWidgetItem;
    root->setText (0, "abc");
    root->setForeground (0, QColor ("brown"));
    root->setIcon (0, QIcon ("C:\\Appl\\Qt\\Qt5.15.2\\Examples\\Qt-5.15.2\\widgets\\itemviews\\interview\\images\\folder.png") );
    ui->treeWidget->addTopLevelItem (root);
 
    QTreeWidgetItem * branch = new QTreeWidgetItem;
    branch->setText (0, "def");
    branch->setForeground (0, QColor ("peru"));
    branch->setToolTip(0, "nejaka vetev");
    root->addChild (branch);
 
    for (int i = 1; i<=3; i ++)
    {
        auto item = new QTreeWidgetItem (branch);
        item->setText (0, "list " + QString::number (i));
        item->setForeground (0, QColor ("lime"));
    }
 
    ui->treeWidget->expandAll();
}

Adresáře a soubory

 
#include <QTreeWidget>
 
 
class MainWindow : public QMainWindow
{
...
private:
    void showDir (QTreeWidgetItem * target, QString path);
...
};
#include "mainwindow.h"
#include "ui_mainwindow.h"
 
#include <QDateTime>
#include <QDir>
 
MainWindow::MainWindow (QWidget *parent)
    :
    QMainWindow (parent),
    ui (new Ui::MainWindow)
{
    ui->setupUi (this);
 
    QDir d0 ("..");
    QDir d (d0.absolutePath());
 
    QStringList labels;
    labels << "Name" << "Date" << "Size";
    ui->treeWidget->setHeaderLabels (labels);
 
    // ui->treeWidget->header()->hide();
 
    QTreeWidgetItem * root = new QTreeWidgetItem;
    root->setText (0, d.dirName ());
    root->setToolTip (0, d.absolutePath());
    root->setForeground (0, QColor ("blue"));
    showDir (root, d.absolutePath());
    ui->treeWidget->addTopLevelItem (root);
 
    ui->treeWidget->expandItem (root);
}
 
void MainWindow::showDir (QTreeWidgetItem * target, QString path)
{
    QDir d (path);
    QFileInfoList list = d.entryInfoList (QDir::AllEntries | QDir::NoDotAndDotDot);
    for (QFileInfo f : list)
    {
        QTreeWidgetItem * item = new QTreeWidgetItem (target);
        item->setText (0, f.fileName ());
        item->setToolTip (0, f.absoluteFilePath ());
        if (f.isDir())
        {
            item->setForeground (0, QColor ("blue"));
            showDir (item, f.absoluteFilePath ());
        }
        else if (f.isFile())
        {
            qint64 size = f.size();
            QString s = QString::number (size);
            QString t = "";
            int len = s.length();
            for (int i = 0 ; i < len ; i ++)
            {
               if (i % 3 == 0 && i != 0) t = ' ' + t;
               t = s[len-1-i] + t;
            }
            while (t.length() < 15) t = ' ' + t;
 
            item->setText (2, t);
            if (size >= 1024)
                item->setForeground (2, QColor ("red"));
 
            QDateTime u = f.lastModified();
            item->setText (1, u.toString ("yyyy-MM-dd hh:mm:ss"));
        }
    }
}
#include "mainwindow.h"
 
#include <QApplication>
#include <QStyleFactory>
 
int main(int argc, char *argv[])
{
    QApplication::setStyle (QStyleFactory::create ("windows"));
    QApplication a(argc, argv);
    MainWindow w;
    w.show();
    return a.exec();
}

Zdrojové texty adresare.zip

 
qt/strom.txt · Last modified: 2021/03/03 15:56 by 88.103.111.44
 
Recent changes RSS feed Creative Commons License Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki