• 4493阅读
  • 2回复

[讨论]QT显示图片问题 [复制链接]

上一主题 下一主题
离线cesc1988
 
只看楼主 倒序阅读 楼主  发表于: 2012-03-15
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失败”这样的错误
离线jdwx

只看该作者 1楼 发表于: 2012-03-16
把这两个函数里分别增加qDebug的语句,看看两个函数的执行顺序。
发帖时要说明:操作系统、Qt版本、编译器,这样能更快的得到回复。
离线cesc1988
只看该作者 2楼 发表于: 2012-03-16
回 1楼(jdwx) 的帖子
setimage()执行了
但paintevent没执行 所以第一幅图片没显示
后面几幅图片都可以显示
快速回复
限100 字节
 
上一个 下一个