QTreeView,为每个级别设置不同的样式
QTreeView, style each level differently
我的问题与这个问题非常相似。
我有一个连接到模型的QTreeView。是否可以用不同的方式对树的每个级别进行样式设置?我需要改变每一行的背景颜色。不同的层次会有不同的背景。展开的项目也会有不同的颜色。
我已经试过了http://doc.qt.io/qt-4.8/stylesheet-examples.html#customizing-qtreeview似乎只使用css是不可能做到这一点的。QProxyStyle有帮助吗?它将如何使用?
谢谢你,马丁。
如果使用自定义模型(源自QAbstractItemModel
或类似模型),则可以通过在请求任何外观角色的数据时从QAbstractItemModel::data()
返回适当的值来实现这一点:
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()
为这些角色设置数据。
相关文章:
- 在QComboBox或QListWidget中设置所选元素的样式文本?
- 在 QTabWidget 中动态设置单个选项卡的样式
- 如何仅设置 QTabWidget 背景颜色样式表
- Qt自定义小部件外观在设置样式表后没有变化
- 无法增加 QToolButton 的大小(按钮样式设置为 Qt::ToolButtonTextBesideIcon)
- 无法在 qt 中为 QWidget 中的派生类设置样式表
- QT设置了所有对象以外的所有对象样式
- 如何在QT中设置样式表以选择假发背景的随机图像
- 为 QWidget 的私有成员设置样式表
- wxStyledTextCtrl 如何设置关键字样式
- 如何在C++中有条件地设置 C 样式字符串?
- QT Designer-设置样式表 - 现在进行硬编码 - 想要以编程方式设置
- 应用字体更改后,丢失样式表设置
- 设置精度应用于旧的 C 样式代码
- 如何设置Clang-Format样式选项,以在捕获前保持不合格
- 101 Qt 样式表边距填充黑客指南在C++。设置填充不起作用
- 在 foreach 样式循环中设置无符号 int 始终为零
- 如何为自定义形状的Qbutton设置样式表
- 在Qt中为整个小部件设置样式表
- Qt QMenu 设置样式表