显示图片问题
用update()触发paintevent事件显示图片,但第一幅不显示,直接第二幅开始显示。这个问题怎么解决? --------------------编程问答-------------------- 貼出代码 --------------------编程问答-------------------- 第二幅 已近把第一幅 冲了把! --------------------编程问答-------------------- 应该是第二幅把第一幅给覆盖掉了,你如果想做两个图的过渡,在绘制中加入计时判断,过一定事件后在执行绘制第二副图的过程 --------------------编程问答--------------------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失败”这样的错误 --------------------编程问答--------------------
代码见四楼 --------------------编程问答--------------------
代码见四楼 --------------------编程问答-------------------- 楼主提供的代码不是最关键的部分,关键是setimage函数是在哪里被调用的。 --------------------编程问答--------------------
在一个while循环里,获得一张图片,然后用setimage函数调用,每次循环都这样 --------------------编程问答-------------------- 那么两次调用setimage的间隔是多长时间?瞬间吗? --------------------编程问答--------------------
0.5秒
貌似很时间没关系的
--------------------编程问答-------------------- 那不到一秒的时间你的第一张图就被第二张图替换掉了,你能看见吗?
补充:移动开发 , Qt