Я как-то рисовал на кнопке так:
void PaintButtonUp::paintEvent(QPaintEvent *event)
{
QPushButton::paintEvent(event);
QPainter paint(this);
static const QPointF points[3] = {
QPointF(3.0, 25.0),
QPointF(10.0, 15.0),
QPointF(17.0, 25.0),
};
paint.setPen(QPen(Qt::darkGray, 2, Qt::SolidLine, Qt::RoundCap));
paint.setRenderHint(QPainter::Antialiasing, true);
paint.setBrush(QBrush(Qt::gray, Qt::SolidPattern));
paint.drawPolygon(points, 3);
}
Т.е. сначала вызывался стандартный метод
QPushButton::paintEvent(event);
а затем уже я отрисовывал на кнопке то, что мне было нужно.
Не знаю поможет это Вам или нет.