I have probably (surely?) made a mistake somewhere but...impossible to find it out! Could you help please?

Qt Code:
  1. class CircleParameter : public QWidget
  2. {
  3. Q_OBJECT
  4.  
  5. public:
  6. CircleParameter(QWidget *parent=0);
  7. virtual ~CircleParameter() {};
  8.  
  9. public slots:
  10. void setRadius(int radius);
  11.  
  12. protected:
  13. void paintEvent(QPaintEvent *e);
  14.  
  15. private:
  16. int radius;
  17. };
  18.  
  19. CircleParameter::CircleParameter(QWidget *parent)
  20. : QWidget(parent)
  21. {
  22. printf("creating widget\n");
  23. this->radius = DEFAULT_RADIUS;
  24. this->resize(MAX_RADIUS*2, MAX_RADIUS*2);
  25. if (updatesEnabled()) printf("yes\n"); else printf("no\n");
  26. if (isVisible()) printf("yes\n"); else printf("no\n");
  27. }
  28.  
  29. void
  30. CircleParameter::setRadius(int radius)
  31. {
  32. printf("setRadius()\n");
  33. if (updatesEnabled()) printf("yes\n"); else printf("no\n");
  34. if (isVisible()) printf("yes\n"); else printf("no\n");
  35. this->radius = radius>0 ? radius<=MAX_RADIUS ? radius : MAX_RADIUS : 1;
  36. this->update();
  37. }
  38.  
  39. void
  40. CircleParameter::paintEvent(QPaintEvent *e)
  41. {
  42. printf("paintEvent()\n");
  43. QPainter painter(this);
  44. QPen pen;
  45. pen.setColor(Qt::red);
  46. painter.setPen(pen);
  47. painter.drawEllipse(this->size().width()/2-this->radius, this->size().height()/2-this->radius, radius*2, radius*2);
  48. }
To copy to clipboard, switch view to plain text mode 

Outputs:
- at creation time:
Qt Code:
  1. creating widget
  2. yes
  3. no
To copy to clipboard, switch view to plain text mode 
- when moving a slider connected to CircleParameter::setRadius():
Qt Code:
  1. setRadius()
  2. yes
  3. yes
To copy to clipboard, switch view to plain text mode 

Issue: why CircleParameter:: paintEvent() never executed?