def paint(self, painter, option, index): QStyledItemDelegate.paint(self, painter, option, index) text, positions = index.data(Qt.UserRole).toPyObject() self.initStyleOption(option, index) painter.save() painter.setFont(option.font) p = option.palette c = p.HighlightedText if option.state & QStyle.State_Selected else p.Text group = (p.Active if option.state & QStyle.State_Active else p.Inactive) c = p.color(group, c) painter.setClipRect(option.rect) if positions is None or -1 in positions: painter.setPen(c) painter.drawText(option.rect, Qt.AlignLeft | Qt.AlignVCenter | Qt.TextSingleLine, text) else: to = QTextOption() to.setWrapMode(to.NoWrap) to.setAlignment(Qt.AlignLeft | Qt.AlignVCenter) positions = sorted(set(positions) - {-1}, reverse=True) text = '<body>%s</body>' % make_highlighted_text(Results.EMPH, text, positions) doc = QTextDocument() c = 'rgb(%d, %d, %d)'%c.getRgb()[:3] doc.setDefaultStyleSheet(' body { color: %s }'%c) doc.setHtml(text) doc.setDefaultFont(option.font) doc.setDocumentMargin(0.0) doc.setDefaultTextOption(to) height = doc.size().height() painter.translate(option.rect.left(), option.rect.top() + (max(0, option.rect.height() - height) // 2)) doc.drawContents(painter) painter.restore()
def __init__(self, *args): QPlainTextEdit.__init__(self, *args) # Default options to RightToleft options=QTextOption(); options = self.document().defaultTextOption(); options.setAlignment(Qt.AlignRight); options.setTextDirection(Qt.RightToLeft); self.document().setDefaultTextOption(options) # Default dictionary based on the current locale. self.dict = myspeller() # self.highlighter = Highlighter(self.document()) # self.highlighter.setDict(self.dict) self.pretxt=''
def __init__(self, *args): QPlainTextEdit.__init__(self, *args) # Default options to RightToleft options = QTextOption() options = self.document().defaultTextOption() options.setAlignment(Qt.AlignRight) options.setTextDirection(Qt.RightToLeft) self.document().setDefaultTextOption(options) # Default dictionary based on the current locale. self.dict = myspeller() # self.highlighter = Highlighter(self.document()) # self.highlighter.setDict(self.dict) self.pretxt = ''