QStyledItemDelegate + QTreeView :: setIndenation вызывает сбои при рисовании текста - PullRequest
0 голосов
/ 14 марта 2019

Уже два дня я не могу получить решение.

У меня есть пользовательские QStyledItemDelegate и QTreeView. Для отступа QTreeView's установлено значение 12. А для QStyledItemDelegate's QStyleOptionViewItem::rect установлено значение -12. Эта настройка вызывает сбои при изменении цвета текста элемента QTreeView.

enter image description here

КОД

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.

1 Ответ

0 голосов
/ 14 марта 2019

Итак, что я забыл сделать, так это переопределить:

    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);
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...