Und warum wundert dich das?!?
Dein geposteter Code wird nicht kompilieren, da "pix" nicht existiert. (sry, existiert scheinbar doch, zu flott gelesen...)
Des weiteren müsste das Bild weiß sein, da du fill() ohne Parameter aufrufst.
Und du malst nicht über ein Pixmap, wenn du ein weiteres Pixmap deinem Label zuweist.
Folgender Code funktioniert bei mir ganz prächtelig.
Code: Alles auswählen
#include <QtGui>
int main( int argc, char **argv )
{
QApplication app(argc, argv);
QPixmap pix( "test.png" );
QPainter p( &pix );
p.drawLine( QLine(pix.rect().topLeft(), pix.rect().bottomRight()) );
p.end();
QLabel l;
l.setPixmap(pix);
l.show();
return app.exec();
}
Er zeichnet mir mein Pixmmap mit einer diagonalen Linie von links oben nach rechts unten.
Was auch klappen sollte (und in meinen Augen eleganter ist), wenn du von QLabel erbst und im paintEvent() erst QLabel::paintEvent() aufrufst, und danach auf "this" deine Zeichenoperationen durchführst.