[PyKDE] Implementing QSimpleRichText

David Boddie david at boddie.org.uk
Fri Aug 13 18:58:43 BST 2004

On Thu, 12 Aug 2004 21:02:46, Eron Lloyd wrote:

>Does anybody have an example of how to implement rich text inside of a 
>QListViewItem? I can't wrap my head around the C++ examples I've found enough 
>to translate what needs to be done. It seems a little more tricky when not 
>implemented inside a QWidget...

You could probably start from the example given at


Something simple like the following might be enough, but you may want to
think about how the items are painted.

Good luck,


#!/usr/bin/env python

import sys

from qt import QApplication, QBrush, QLabel, QListView, QListViewItem, \
               QPixmap, Qt

class RichTextItem(QListViewItem):

    def __init__(self, parent, previous = None):
        QListViewItem.__init__(self, parent, previous)
        self.label = QLabel(None)
    def paintCell(self, painter, colorGroup, column, width, alignment):
        painter.fillRect(0, 0, width, self.height(), QBrush(Qt.white))
        self.label.resize(width, self.height())
        pixmap = QPixmap.grabWidget(self.label, 0, 0, width, self.height())
        painter.drawPixmap(0, 0, pixmap)

example_text = """<h1>My list items</h1>
<b>A bold item</b>
<i>An italic item</i>
Some <i>mixed</i> <b>text</b>"""

if __name__ == "__main__":

    app = QApplication(sys.argv)
    list_view = QListView()
    previous = None
    for line in example_text.split("\n"):
        list_item = RichTextItem(list_view, previous)
        list_item.setText(0, line)
        previous = list_item

$0 Web Hosting with up to 120MB web space, 1000 MB Transfer
10 Personalized POP and Web E-mail Accounts, and much more.
Signup at www.doteasy.com

More information about the PyQt mailing list