根据您提供的代码,可以看出painter->fillPath()
函数用于填充路径所围成的区域,但它只能绘制线条而不能直接设置背景颜色。要实现在该方法中设置行的背景颜色,可以考虑使用painter->fillRect()
来填充矩形区域。
以下是修改后的代码示例:
void CPXAnimaTree::drawRow(QPainter* painter, const QStyleOptionViewItem& options, const QModelIndex& index) const
{
QStyleOptionViewItem opt(options);
painter->setRenderHint(QPainter::Antialiasing);
QPainterPath path;
path.addRect(options.rect);
auto value = index.child(0, index.column());
QColor col_parent("#2A2A2A");
QColor col_child("#1F1F1F");
if (value.isValid())//是否有子节点可用
{
painter->fillRect(options.rect, col_parent);
}
else
{
painter->fillRect(options.rect, col_child);
}
QTreeWidget::drawRow(painter, opt, index);
}
这样修改后,在有子节点时会使用col_parent
颜色填充行的背景,在没有子节点时会使用col_child
颜色填充行的背景。
内容由零声教学AI助手提供,问题来源于学员提问