遇到了一个问题,百思不得其解,还请老师指点:
我想在我定义的Widget(里面包含一些按钮等)里面画一个图形,但是为什么编译报错呢?程序如下:
class MyWidget : public QWidget
{
Q_OBJECT
public:
MyWidget(QWidget *parent=0);
protected:
void paintEvent(QPaintEvent *event);
private:
int i;
};
MyWidget::MyWidget(QWidget *parent) : QWidget(parent)
{
QLCDNumber *Disp1 = new QLCDNumber;
QPushButton *Button1 = new QPushButton("Quit");
MyPaintArea *Area1 = new MyPaintArea;
QVBoxLayout *Box1 = new QVBoxLayout;
Box1->addWidget(Disp1);
Box1->addWidget(Area1);
Box1->addWidget(Button1);
setLayout(Box1);
connect(Button1, SIGNAL(clicked()), qApp, SLOT(quit()));
connect(Area1, SIGNAL(AreaChanged(int)), Disp1, SLOT(display(int)));
}
void MyWidget::paintEvent(QPaintEvent *)
{
QPainter *painter(this);
painter.setBrush(Qt::blue);
painter.drawRect(30,-30,10,10);
}
我的目的是想在MyWidget里面画一个方块,这个方块应该是覆盖在现有的内容(比如LCDNumber, PushButton等等)上面吧?你们看我的程序什么地方有问题呢? 编译总报错:
hello.cpp:38: error: cannot convert 'MyWidget* const' to 'QPainter*' in initialization
这个第38行就是那个
QPainter *painter(this); 语句 |