paintEvent in QTableView derived class: Paint device returned engine == 0, type: 1

As QTableView is a subclass of QAbstractScrollArea you should open QPainter on its viewport: void CDerivedFromQTableView::paintEvent(QPaintEvent *event) { QTableView::paintEvent(event); // draw original content QPainter p(this->viewport()); p.drawRect(0, 0, 20, 20); } The docs say it: This event handler can be reimplemented in a subclass to receive paint events (passed in event), for the viewport() widget. Note: … Read more