Я использую Qtableview, чтобы показать файл и папку (только показать значок, имя файла, размер).Я хочу нарисовать цвет текста (весь текст в строке) для нескольких конкретных файлов.
Например: файл, начинающийся с 'ABC', серый;«XYZ» красный, ...
Рекомендуется использовать QIdentityProxyModel и переопределить метод data для необходимых ролей .Например:
QIdentityProxyModel
data
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 );