====== 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}}