我的问题与this question非常相似。
我有一个连接到模型的QTreeView。是否可以以不同的方式为树的每个级别设置样式?我需要改变每一行的背景颜色。不同的级别会有不同的背景。扩展的项目也会有不同的颜色。
我已经尝试了这个http://doc.qt.io/qt-4.8/stylesheet-examples.html#customizing-qtreeview似乎只使用css是不可能的。 QProxyStyle可以提供帮助吗?如何使用?
谢谢你,马丁。
答案 0 :(得分:0)
如果您使用的是自定义模型(源自QAbstractItemModel
或类似),则可以在请求任何appearance role的数据时从QAbstractItemModel::data()
返回适当的值来实现此目的:< / p>
QVariant MyModel::data(const QModelIndex& index, int role) const
{
switch(role)
{
case Qt::DisplayRole:
{
...
break;
}
case Qt::BackgroundRole:
return QColor(Qt::red);
case ...
}
return QVariant();
}
使用QStandardModel
,您可以使用QStandardItem::setData()
为这些角色设置数据。