无法更改QListView中项目的颜色

时间:2017-09-10 09:00:25

标签: qt c++11 qt5

我有以下代码;

  QStringListModel *model = new QStringListModel();
  QStringList list;
  ui.listViewResults->setEditTriggers(QAbstractItemView::NoEditTriggers);
  ui.listViewResults->setViewMode(QListView::ListMode);

  list << "A";
  list << "B";
  list << "C";
  model->setStringList(list);

  QModelIndex vIndex = model->index(0, 0);
  QMap<int, QVariant> vMap = model->itemData(vIndex);
  vMap.insert(Qt::BackgroundRole, QVariant(QBrush(Qt::red)));
  model->setItemData(vIndex, vMap);

  ui.listViewResults->setModel(model);

然而,颜色似乎没有改变,任何想法?谢谢!

1 个答案:

答案 0 :(得分:1)

如果每个项目需要不同的背景,请使用QStandartItemModelQStandartItem。或者您甚至可以创建自己的模型/项目子类QAbstractItemModel

使用QStandartItemModelQStandartItem

的示例
file.setReadOnly();

enter image description here