Я перечисляю папку с помощью QTreeWidget. Я написал следующие коды, и это похоже на изображение.Список папок с Qtreewidget в Qt C++
Но, я не хочу, чтобы это отображалось следующим образом. Я хочу добавить значок ящика и добавить пунктирную линию в левую часть поля. Я добавил картинку под кодом, который я хотел сделать. Как он может отображаться следующим образом.
QTreeWidgetItem *topLevelItem = NULL;
foreach (const QString &fileName, fileNames)
{
QList<QString> splitFileName;
splitFileName.append(fileName.split("/"));
// add root folder as top level item if treeWidget doesn't already have it
if (ui->treeWidget->findItems(splitFileName[0], Qt::MatchFixedString).isEmpty())
{
topLevelItem = new QTreeWidgetItem;
topLevelItem->setText(0, splitFileName[0]);
ui->treeWidget->addTopLevelItem(topLevelItem);
}
QTreeWidgetItem *parentItem = topLevelItem;
// iterate through non-root directories (file name comes after)
for (int i = 1; i < splitFileName.size() - 1; ++i)
{
// iterate through children of parentItem to see if this directory exists
bool thisDirectoryExists = false;
for (int j = 0; j < parentItem->childCount(); ++j)
{
if (splitFileName[i] == parentItem->child(j)->text(0))
{
thisDirectoryExists = true;
parentItem = parentItem->child(j);
break;
}
}
if (!thisDirectoryExists)
{
parentItem = new QTreeWidgetItem(parentItem);
parentItem->setText(0, splitFileName[i]);
}
}
if(splitFileName.last()!="")
{
QTreeWidgetItem *childItem = new QTreeWidgetItem(parentItem);
childItem->setText(0, splitFileName.last());
}
}
fileNames.clear();
}
Я хочу, чтобы это было так