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 :
#include <QtCore/QDebug>
#include <QtGui/QApplication>
#include <QtGui/QPainter>
#include <QtGui/QPaintEvent>
#include <QtGui/QPushButton>
#include <QtGui/QWidget>
{
public:
virtual void doTreatment() {qDebug() << "Treatment";}
};
{
public:
PushButton
() : Widget
(),
QPushButton() {setText
("Push Button");
}};
{
QPoint point
= (event
->rect
()).
center();
point.setX(point.x() - pixmap.rect().center().x());
point.setY(point.y() - pixmap.rect().center().y());
painter.drawPixmap(point, pixmap);
}
int main(int argc, char *argv[])
{
Widget *widget = new PushButton();
widget->doTreatment();
delete widget;
return a.exec();
}
#include <QtCore/QDebug>
#include <QtGui/QApplication>
#include <QtGui/QPainter>
#include <QtGui/QPaintEvent>
#include <QtGui/QPushButton>
#include <QtGui/QWidget>
class Widget : public QWidget
{
public:
Widget() : QWidget() {}
virtual void doTreatment() {qDebug() << "Treatment";}
};
class PushButton : public Widget, public QPushButton
{
public:
PushButton() : Widget(), QPushButton() {setText("Push Button");}
void paintEvent(QPaintEvent *event);
};
void PushButton::paintEvent(QPaintEvent *event)
{
QPushButton::paintEvent(event);
QPixmap pixmap("image.png");
QPoint point = (event->rect()).center();
point.setX(point.x() - pixmap.rect().center().x());
point.setY(point.y() - pixmap.rect().center().y());
QPainter painter(this);
painter.drawPixmap(point, pixmap);
}
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
Widget *widget = new PushButton();
widget->doTreatment();
delete widget;
return a.exec();
}
To copy to clipboard, switch view to plain text mode

If you have any ideas, thanks...
Bookmarks