def paint(self, painter, option, index): options = QStyleOptionViewItem(option) item = index.data(Qt.UserRole) if isinstance(item, (CommentItem, ChangeItem)): options.decorationAlignment = Qt.AlignHCenter self.initStyleOption(options,index) if options.widget is None: style = QApplication.style() else: style = options.widget.style() doc = QTextDocument() doc.setHtml(options.text) options.text = "" style.drawControl(QStyle.CE_ItemViewItem, options, painter) ctx = QAbstractTextDocumentLayout.PaintContext() # Highlighting text if item is selected #if (optionV4.state & QStyle::State_Selected) #ctx.palette.setColor(QPalette::Text, optionV4.palette.color(QPalette::Active, QPalette::HighlightedText)) textRect = style.subElementRect(QStyle.SE_ItemViewItemText, options) painter.save() painter.translate(textRect.topLeft()) painter.setClipRect(textRect.translated(-textRect.topLeft())) doc.documentLayout().draw(painter, ctx) painter.restore()
def paint(self, painter: QPainter, option: QStyleOptionViewItem, index: QModelIndex): """ Reposition the icon to the right side. """ option.decorationPosition = QStyleOptionViewItem.Right option.decorationAlignment = Qt.AlignRight | Qt.AlignVCenter super(EditorDelegate, self).paint(painter, option, index)
def paint(self, painter: QPainter, option: QStyleOptionViewItem, index: QModelIndex): if self._decoration_position is not None: option.decorationPosition = self._decoration_position if self._decoration_alignment is not None: option.decorationAlignment = self._decoration_alignment super(StyleOptionModifyingDelegate, self).paint(painter, option, index)