Как сделать кастом QItemDelegate
как на прикрепленной картинке.Это QTreeView
.Последний элемент, который я хочу настроить и добавить QItemDelegate
![enter image description here](https://i.stack.imgur.com/Y3OKI.png)
На данный момент у меня есть только зеленая строка separator
и я хотел бы добавить QCheckBox
ниже разделителя,Как реализовать этот тип поведения?
void SeparatorItemDelegate::paint(QPainter* painter, const QStyleOptionViewItem& option, const QModelIndex& index) const
{
if (index.data(Qt::UserRole + 1).toString() == tr("Unsorted"))
{
QPen pen(Qt::green, 1, Qt::DashLine, Qt::RoundCap, Qt::RoundJoin);
painter->setPen(pen);
painter->drawLine(option.rect.left(), option.rect.center().y(), option.rect.right(), option.rect.center().y());
}
else
{
QItemDelegate::paint(painter, option, index);
}
}
QSize SeparatorItemDelegate::sizeHint(const QStyleOptionViewItem& option, const QModelIndex& index) const
{
if (index.data(Qt::UserRole + 1).toString() == tr("Unsorted"))
{
return QSize(200, 25);
}
return QItemDelegate::sizeHint(option, index);
}
void SeparatorItemDelegate::updateEditorGeometry(QWidget* editor, const QStyleOptionViewItem& option, const QModelIndex& index) const
{
editor->setGeometry(option.rect);
}
ПРОБЛЕМА ЕСТЬ: Как объединить SeparatorLine
и QChekBox
в один пользовательский элемент?