如何在 Qt 中使用 QFileSystemModel 设置文本颜色 QTableView?

How to set text color QTableView with QFileSystemModel in Qt?

我用Qtableview显示文件和文件夹(只显示图标,文件名,大小)。 我想为几个特定文件绘制文本颜色(行中的所有文本)。

例如:以'ABC'开头的文件是灰色的; 'XYZ' 是红色的,...

最佳做法是使用 QIdentityProxyModel and override a data method for necessary roles。例如:

QVariant MyProxy::data(const QModelIndex &index, int role) const
{
  // Whatever you want in condition:
  if ( sourceModel()->data(index, Qt::TextRole).toString() == "SomeFile.txt" )
    switch( role )
    {
    case Qt::ForegroundRole: return Qt::Red;
    case Qt::BackgroundRole: return Qt::Blue; // or any brush, etc
    default:
      break;
    }

  return sourceModel()->data(role);
}

//...
MyProxy proxy = new MyProxy{};
proxy->setSourceModel( yourModel );
view->setModel( proxy );