qtreewidget
#include <QDir> #include <QFileInfo> #include <QTreeWidget>
void showFile (QTreeWidgetItem * branch, QFileInfo info, int level);
void MainWindow::showFile (QTreeWidgetItem * branch, QFileInfo info, int level) { QTreeWidgetItem * item = new QTreeWidgetItem; item->setText (0, info.fileName()); item->setToolTip (0, info.filePath()); if (info.isDir()) item->setTextColor (0, QColor (255, 128, 64)); else item->setTextColor (0, QColor ("cornflowerblue")); if (branch == NULL) ui->treeWidget->addTopLevelItem (item); else branch->addChild (item); if (info.isFile()) { QIcon * icon = new QIcon (info.filePath()); item->setIcon (0, *icon); } if (info.isDir() && level > 0) { QDir dir (info.filePath()); QFileInfoList list = dir.entryInfoList (QDir::Files | QDir::Dirs | QDir::NoDotAndDotDot); for (int i = 0; i < list.count(); i++) showFile (item, list[i], level-1); } } void MainWindow::on_pushButton_clicked() { showFile (NULL, QFileInfo ("/usr/share/icons"), 4); }
qtreewidget.txt · Last modified: 2015/03/04 14:08 by 127.0.0.1