QStyledItemDelegate+;QTreeView::setIndenation导致文本绘图出现故障

QStyledItemDelegate+;QTreeView::setIndenation导致文本绘图出现故障,qt,qt5,Qt,Qt5,我已经两天没能得到解决办法了 我有一个自定义的qstyledtemdelegate和一个QTreeViewQTreeView的缩进设置为12。和QStyledItemDelegate的QStyleOptionViewItem::rect设置为-12。 当我更改QTreeView项目文本的颜色时,此设置会导致出现故障 代码 void MyItemViewDelegate::initStyleOption(QStyleOptionViewItem* option, const QModelInde

我已经两天没能得到解决办法了

我有一个自定义的
qstyledtemdelegate
和一个
QTreeView
<代码>QTreeView的缩进设置为12。和
QStyledItemDelegate的
QStyleOptionViewItem::rect
设置为-12。 当我更改
QTreeView
项目文本的颜色时,此设置会导致出现故障

代码

void MyItemViewDelegate::initStyleOption(QStyleOptionViewItem* option, const QModelIndex& index) const
{
    if (m_functor->operator ()(index))
    {
        option->rect.adjust(-12, 0, 0, 0);
    }    
}

MyTreeView::MyTreeView(QWidget* parent)
    : QTreeView(parent)
{
    setIndentation(12);
}
我错过了什么


不知何故,它与QTreeView的视口有关。

所以我忘记做的是覆盖:

    QRect QTreeView::visualRect(const QModelIndex& index) const
    {
        if (m_functor->operator ()(index))
        {
            return QTreeView::visualRect(index).adjusted(-m_indentation, 0, 0, 0);
        }

       return QTreeView::visualRect(index);
    }

删除选项->校正调整(-12,0,0,0)@谢谢你的努力。我找到了解决办法。