显示图片问题

chen19880827 2012-03-14 10:40:03
用update()触发paintevent事件显示图片,但第一幅不显示,直接第二幅开始显示。这个问题怎么解决?
...全文
102 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiachm 2012-03-15
  • 打赏
  • 举报
回复
那不到一秒的时间你的第一张图就被第二张图替换掉了,你能看见吗?
chen19880827 2012-03-15
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 xiachm 的回复:]

那么两次调用setimage的间隔是多长时间?瞬间吗?
[/Quote]
0.5秒
貌似很时间没关系的
开发者说 2012-03-14
  • 打赏
  • 举报
回复
应该是第二幅把第一幅给覆盖掉了,你如果想做两个图的过渡,在绘制中加入计时判断,过一定事件后在执行绘制第二副图的过程
SunFrank1987 2012-03-14
  • 打赏
  • 举报
回复
第二幅 已近把第一幅 冲了把!
念茜 2012-03-14
  • 打赏
  • 举报
回复
貼出代码
xiachm 2012-03-14
  • 打赏
  • 举报
回复
那么两次调用setimage的间隔是多长时间?瞬间吗?
chen19880827 2012-03-14
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 xiachm 的回复:]

楼主提供的代码不是最关键的部分,关键是setimage函数是在哪里被调用的。
[/Quote]
在一个while循环里,获得一张图片,然后用setimage函数调用,每次循环都这样
xiachm 2012-03-14
  • 打赏
  • 举报
回复
楼主提供的代码不是最关键的部分,关键是setimage函数是在哪里被调用的。
chen19880827 2012-03-14
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 cnsword 的回复:]

应该是第二幅把第一幅给覆盖掉了,你如果想做两个图的过渡,在绘制中加入计时判断,过一定事件后在执行绘制第二副图的过程
[/Quote]
代码见四楼
chen19880827 2012-03-14
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 ak47zhangzhiwei 的回复:]

第二幅 已近把第一幅 冲了把!
[/Quote]
代码见四楼
chen19880827 2012-03-14
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 yiyaaixuexi 的回复:]

貼出代码
[/Quote]
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失败”这样的错误

16,240

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧