一.效果

二.实现
网格线虽然可以用样式表添加,但效果不好。这里重写QTreeView的drawRow函数来实现网格线的绘制。
void QHTreeView::drawRow(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const
{
QTreeView::drawRow(painter, option, index);
QPen pen = painter->pen();
pen.setWidth(1);
pen.setColor(Qt::lightGray);
painter->setPen(pen);
int y = option.rect.y();
painter->save();
painter->translate(visualRect(model()->index(0, 0)).x() - indentation() - 0.5, -0.5);
for (int i = 0; i < header()->count() - 1 ; i++)
{
painter->translate(header()->sectionSize(i), 0);
订阅专栏 解锁全文
676

被折叠的 条评论
为什么被折叠?



