子窗体实现不了paintEvent,怎么回事?
我的程序创建了一个窗体, 继承于QWidget,在里面又加入了一个scrollArea,然后在窗体类里定义了一个QWwidget,放入scrollArea,
我现在想在通过窗体里的一个按钮,一点击,掉用paintEvent,在子窗体里画线,为什么不行呢,
class show : public QWidget
{
Q_OBJECT
public:
int flg;
show( );
private:
void paintEvent(QPaintEvent *event);
private slots:
void mypaint();
private:
QScrollArea *scrollArea;
QWidget *scrollAreaWidgetContents;
QWidget *widget;//子窗体
QPushButton *pushButton;
};这是类定义,
connect(pushButton, SIGNAL(clicked()), widget, SLOT(mypaint()));
void show::paintEvent(QPaintEvent *event)
{
QPainter painter;
if(flg==1){
painter.setPen(Qt::white);
painter.begin(widget);
painter.drawLine(0,0,200,200);
painter.drawEllipse(120,120,50,50);
painter.end();
}
}
void show::mypaint()
{
flg=1;
update();
}
为什么不响应呢,
connect(pushButton, SIGNAL(clicked()), widget, SLOT(mypaint()));函数的第三个参数改为this倒是能响应,可显示不出线,
大家能不能帮我好好看看,教教我该怎么做