已经有两天我无法得到解决方案。
我有一个自定义QStyledItemDelegate
和QTreeView
。 QTreeView's
缩进设置为12.并且QStyledItemDelegate's
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);
}