Hello,
i have some problems by subclassing QWidget and QPushButton

the error is :
main.cpp: In member function `virtual void PushButton:aintEvent(QPaintEvent*)':
main.cpp:33: error: `QPaintDevice' is an ambiguous base of `PushButton'
The entire code is :
Qt Code:
  1. #include <QtCore/QDebug>
  2.  
  3. #include <QtGui/QApplication>
  4. #include <QtGui/QPainter>
  5. #include <QtGui/QPaintEvent>
  6. #include <QtGui/QPushButton>
  7. #include <QtGui/QWidget>
  8.  
  9. class Widget : public QWidget
  10. {
  11. public:
  12. Widget() : QWidget() {}
  13. virtual void doTreatment() {qDebug() << "Treatment";}
  14. };
  15.  
  16. class PushButton : public Widget, public QPushButton
  17. {
  18. public:
  19. PushButton() : Widget(), QPushButton() {setText("Push Button");}
  20. void paintEvent(QPaintEvent *event);
  21. };
  22.  
  23. void PushButton::paintEvent(QPaintEvent *event)
  24. {
  25. QPushButton::paintEvent(event);
  26.  
  27. QPixmap pixmap("image.png");
  28. QPoint point = (event->rect()).center();
  29. point.setX(point.x() - pixmap.rect().center().x());
  30. point.setY(point.y() - pixmap.rect().center().y());
  31.  
  32. QPainter painter(this);
  33. painter.drawPixmap(point, pixmap);
  34. }
  35.  
  36. int main(int argc, char *argv[])
  37. {
  38. QApplication a(argc, argv);
  39.  
  40. Widget *widget = new PushButton();
  41. widget->doTreatment();
  42. delete widget;
  43.  
  44. return a.exec();
  45. }
To copy to clipboard, switch view to plain text mode 



If you have any ideas, thanks...