http://kmlinux/~culik/wiki
#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);
}