• 3329阅读
  • 5回复

用Qt绘图的时候出现延迟 [复制链接]

上一主题 下一主题
离线yucoat
 
只看楼主 倒序阅读 楼主  发表于: 2013-09-09
我写的Widget是QWidget的子类。我重写了paintEvent函数

Widget类的paintEvent工作过程是这样的:

先构造一个与Widget尺寸一致的QPixmap并填充白色。然后再在该QPixmap上绘制一个蓝色的边框。
再把QPixmap绘制到Widget上来。


效果图如下:




现在我以比较快的速度对这个窗口进行缩放
出现的问题就是:绘制蓝色的边框的时候存在一定的延迟


paintEvent函数如下:


  1. void Widget::paintEvent(QPaintEvent *e)
  2. {    
  3.     QPainter PaintWidget(this);
  4.     QPixmap Pixmap(this->size());    
  5.     Pixmap.fill();
  6.     QPainter Paint(&Pixmap);    
  7.     QColor penColor(70, 130, 180);    
  8.     Paint.setPen(QPen(penColor, 6));    
  9.     Paint.drawRect(this->rect());
  10.     PaintWidget.drawPixmap(this->rect(), Pixmap);
  11. }


附件中就是编译好的程序(含dll)
demo.zip (5417 K) 下载次数:3


怎么样才能解决这个延迟的问题呢?
离线wowk
只看该作者 1楼 发表于: 2013-09-10
把蓝色边框画在pixmap上试试
岁月静好
离线wowk
只看该作者 2楼 发表于: 2013-09-10
把蓝色边框画在pixmap上试试
岁月静好
离线jdwx

只看该作者 3楼 发表于: 2013-09-10
用release配置编译。
程序还有可以优化的地方。
再有重绘很费时间,别人的程序也会延迟。
发帖时要说明:操作系统、Qt版本、编译器,这样能更快的得到回复。
离线yucoat
只看该作者 4楼 发表于: 2013-09-10
回 2楼(wowk) 的帖子
我是画在Pixmap上啊
离线yucoat
只看该作者 5楼 发表于: 2013-09-10
回 3楼(jdwx) 的帖子
我是以Relase版本执行的。

除了重绘之外我想不到其他的办法,你有办法吗?

主要是左边框跟下边框出有延迟
快速回复
限100 字节
 
上一个 下一个