Bonjour,
Aujourd'hui je veux afficher une QPixmap dans une QScrollArea ( et oui, y en a qui ont des idées folles de nos jours ).
J'y arrive très bien, en utilisant la méthode que j'ai vu partout, qui est d'utiliser un QLabel, de lui assigner un QPixmap et le tour est joué. Mais je trouve ça assez "spécial" de prendre un QLabel pour afficher un QPixmap.
Du coup, j'ai fait une classe, qui hérite de QScrollArea, je lui donne ma QPixmap, et je redéfini paintEvent().
Lorsque je crée mon QPainter il m'envoie ce message:
QPainter::begin: Widget painting can only begin as a result of a paintEventJe ne comprends pas trop pourquoi, vu que je suis dans un paintEvent().
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 void WidgetImage :: paintEvent(QPaintEvent* event) { QPainter painter(this); painter.drawTiledPixmap(0,0, pixmap.width(), pixmap.height(), pixmap); //painter.end(); }
Ou alors, il est vraiment impossible de faire comme je le veux.
Mais alors ... comment je fais, car mon but final, c'est le dessin d'un rectangle au dessus de ma QPixmap.
Partager