def sizeHint(self, option, index): options = QStyleOptionViewItem(option) gene_obj = index.data(Qt.DisplayRole) self.initStyleOption(options, index) doc = QTextDocument() doc.setHtml(gene_obj.to_html()) doc.setTextWidth(options.rect.width() - 10) return QSize(doc.idealWidth(), doc.size().height())
def _prepare_text_document(self, option, index): # This logic must be shared between paint and sizeHint for consitency options = QStyleOptionViewItem(option) self.initStyleOption(options, index) doc = QTextDocument() doc.setDocumentMargin(self._margin) doc.setHtml(options.text) icon_height = doc.size().height() - 2 options.decorationSize = QSize(icon_height, icon_height) return options, doc