====== 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
class MainWindow : public QMainWindow
{
...
private:
void showDir (QTreeWidgetItem * target, QString path);
...
};
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include
#include
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
#include
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}}
{{adresare.png}}