C++ 我的QTreeWidgetIcons在哪里?

C++ 我的QTreeWidgetIcons在哪里?,c++,qt,qt4,qt5,qtreewidget,C++,Qt,Qt4,Qt5,Qtreewidget,我有一个带有QTreeWidgetItem项目的QTreeWidget,但是只有根节点显示其图标: 我一直在琢磨什么可以关掉它,有什么提示吗 ui->folderTree1->setUpdatesEnabled( false ); QTreeWidgetItem* treeRoot1 = new QTreeWidgetItem(ui->folderTree1); treeRoot1->setIcon(0, QIcon(":/icons/black.png"

我有一个带有
QTreeWidgetItem
项目的
QTreeWidget
,但是只有根节点显示其图标:

我一直在琢磨什么可以关掉它,有什么提示吗

  ui->folderTree1->setUpdatesEnabled( false );

  QTreeWidgetItem* treeRoot1 = new QTreeWidgetItem(ui->folderTree1);
  treeRoot1->setIcon(0, QIcon(":/icons/black.png"));
  treeRoot1->setText(0, tr("Root"));
  treeRoot1->setExpanded(true);
  addFoldersToTreeView(treeRoot1, ui->filePath1->text(), ui->filePath2->text());

  ui->folderTree1->setUpdatesEnabled( true );
}

void MainWindow::addFoldersToTreeView(QTreeWidgetItem* currentWidget, QString leftPath, QString rightPath)
{
  qDebug() << "MainWindow::addFoldersToTreeView" << leftPath;
  QDir dir(leftPath);
  QDir dir2(rightPath);
  /* Add the folders */
  foreach (QString subDir, dir.entryList(QDir::Dirs | QDir::NoDotAndDotDot))
  {
    QString sImageName = ":/icons/black.png";
    QTreeWidgetItem* newItem = new QTreeWidgetItem(currentWidget);
    qDebug() << "MainWindow::addFoldersToTreeView.sImageName" << sImageName;
    newItem->setIcon(0, QIcon(sImageName));
    newItem->setText(0, subDir);
    newItem->setExpanded(true);
    newItem->setData(0, 1, QVariant(leftPath + QDir::separator() + subDir));
    /* Recursively add sub-folders */
    addFoldersToTreeView(newItem, leftPath + QDir::separator() + subDir, rightPath + QDir::separator() + subDir);
  }
ui->folderTree1->setUpdatesEnabled(false);
QTreeWidgetItem*treeRoot1=新建QTreeWidgetItem(ui->folderTree1);
treeRoot1->setIcon(0,QIcon(:/icons/black.png));
treeRoot1->setText(0,tr(“根”);
treeRoot1->setExpanded(真);
addFoldersToTreeView(treeRoot1,ui->filePath1->text(),ui->filePath2->text());
ui->folderTree1->setUpdatesEnabled(真);
}
void主窗口::addFoldersToTreeView(QTreeWidgetItem*currentWidget,QString leftPath,QString rightPath)
{
qDebug()setData(0,1,QVariant(leftPath+QDir::separator()+subDir));
/*递归添加子文件夹*/
addFoldersToTreeView(newItem、leftPath+QDir::separator()+subDir、rightPath+QDir::separator()+subDir);
}

问题在于线路:

newItem->setData(0, 1, QVariant(leftPath + QDir::separator() + subDir));
第二个参数是项数据角色,指定为1(Qt::DecorationRole)。Qt::DecorationRole应用于以图标形式呈现为装饰的数据,即,此行将使您之前指定的图标替换为
QVariant
对象

删除该行或将项目数据角色更改为其他角色