Don't touch the paint event. The widget is too complex to change its paint event.
Maybe you could get rid of the model view framework if it's just about display and use some simpler mechanism, like QTextDocument with a table.