Таблица представляет из себя QAbstractTableModel + QItemDelegate + QTableView
Приведенный вами код я использовал так:
C++ (Qt)
class TableView : public QTableView
{
...
protected:
void paintEvent(QPaintEvent *e);
};
void TableView::paintEvent(QPaintEvent *event)
{
QPainter painter(this);
painter.drawLine(0,0,50,50);
}
в итоге вместо линии получалось посмотреть в дебаге - QPainter::begin: Paint device returned engine == 0, type: 1