Bonjour à tous,
J'essaye de redessiner un QPushButton en gardant son aspect original mais changeant l'opacité. Après pas mal de recherche sur le web la solution qui m'a parue la plus correcte est celle qui consiste à faire dériver QPushButton et à redéfinir la méthode paintEvent().
Malgré tout un problème d'appel récursif se pose (que je comprends bien, mais auquel je ne trouve pas d'alternative). Voici le code incriminé :
en sortie j'obtiens alors :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 void TranslucentButton::paintEvent(QPaintEvent **event) { QPainter painter(this); painter.setOpacity(0.5); this->render(&painter); }
Le résultat à l'écran est pourtant lui celui attendu.[EDIT] en fait non, pas du tout.QWidget::repaint: Recursive repaint detected
Une suggestion ?
PS : En fait, pour essayer d'expliquer un peu plus ce que je cherche à faire, j'aimerais mettre au point une classe générique "GenericTranslucentWidget" descendant de QWidget afin de pouvoir avoir tout les widgets héritant de cette classe translucides sans avoir à redéfinir constamment paintEvent()
Partager