用update()触发paintevent事件在label上显示图片,但第一幅不显示,直接第二幅开始显示。这个问题怎么解决?
显示一副图片调用setimage函数
void ImageQlabel::setimage(QImage *image)
{
i=1;
this->image=image;
update();
}
void ImageQlabel::paintEvent(QPaintEvent *)
{
if(i!=0)
{
QPainter* painter1=new QPainter(this);
QRect target(0,0,320,240);
QRect source(0,0,640,480);
painter1->drawImage(target,*image,source);
qDebug()<<"begin painter";
delete painter1;
}
}
我发现第一幅图片根本就没有绘制,但是已经明明调用update()函数了啊 如果用repaint()函数的话 是可以绘制第一幅图片 但运行久了会出现“xcb_io.c:228:_XSend: 断言“!dpy->xcb->request_extra失败”这样的错误