Так тоже можно, но там еще нужно доопределить некоторые параметры перед передачей на отрисовку. Тут хорошо помогут как уже сказали исходники.
Можно еще вот так:
C++ (Qt)
QPainter p(this);
if(underMouse())
{
p.fillRect(rect(), QColor(Qt::red));
} else {
p.fillRect(rect(), QColor(Qt::green));
}