2010-07-19 5 views
2

J'essaie de créer un bouton personnalisé, dérivé de "QAbstractbutton". J'ai remplacé le paintEvent. Cependant, mon bouton n'est pas visible dans mon widget. Ce que je vois, c'est que paintEvent ne reçoit pas d'appel même après avoir appelé update/repaint/show sur mon bouton. Quel pourrait être le chaînon manquant ici?[Qt] paintEvent n'est pas appelé dans le bouton personnalisé dérivé de QAbstractButton

Merci!

+0

inclure un exemple de code s'il vous plaît, par ex. code extrait de l'endroit où vous ajoutez votre bouton personnalisé à votre widget, etc – Lars

Répondre

3

paintEvent sur un objet ne sera pas appelé sauf si l'objet a une largeur et une hauteur non nulles. Ma conjecture (et l'absence de tout code d'exemple, c'est une supposition pure) est que vous venez de créer un avec une largeur ou une hauteur de 0, et attendez-vous à dessiner.

+0

Merci, cela a fonctionné! Je ne savais pas qt optimise sur paintEvent() dans ce cas. Lorsque ma classe est dérivée de QWidget, paintEvent() fonctionnera correctement (même si la taille n'est pas définie initialement). Pour ce cas (QAbstractbutton derived), j'ai dû définir une largeur et une hauteur dans le constructeur pour le faire fonctionner! –

+3

Simplement réimplémenter sizeHint dans votre bouton personnalisé et calculer la taille appropriée pour les données contenues dans le bouton –