如何在 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 );
我用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 );