毕业论文开发语言企业开发JAVA技术.NET技术WEB开发Linux/Unix数据库技术Windows平台移动平台嵌入式论文范文英语论文
您现在的位置: 毕业论文 >> 移动平台 >> 正文

用paint或者paintevent函数结合timerevent函数绘图渐变或者是淡入淡出很慢

更新时间:2012-9-19:  来源:毕业论文

最近用了Qt做了一些动画效果,发现一个问题,如果用paint或者paintevent函数结合timerevent函数绘图,实现的渐变或者是淡入淡出很慢

我用的是单象素分别绘图,就是把图像的每个象素点读出来,然后经过一定的计算再绘制上去,实现图像时间上和空间上的变化。但是,绘制一个1024*768的图像,在3.2秒实现16个条形分部显示就很慢了。甚至有的时候就是不用timer来绘制,直接将图片单个象素同一时间绘制就觉得窗口有点延迟了。

是不是实现这些功能有其他的好办法,或者有什么解决方案呢?

注:不要怀疑我的机器配置

这是我做循环计算的代码:
 if (k<=x&&x<200*(k+1))
  {
  for (int i = 0; i < image.width(); ++i)
  {
  for (int j = 0; j < image.height(); ++j)
  {
  if ((k*64*k*64*2)<=(i*i+j*j)&&(i*i+j*j)<((k+1)*64*(k+1)*64*2))
高手赐教,不胜感激!

下面是设置图片透明度效果的。

  float opacity=0.7;
  QGraphicsOpacityEffect *effect=new QGraphicsOpacityEffect();
  effect->setOpacity(opacity);
  ui->label->setGraphicsEffect(effect);

可以连接一个timer来设置透明度。0完全透明,1.0完全不透明。

PS:
你那个方法有点慢因为一个个要绘屏。写IO有点慢。
还有个方法。就是你把要的图片在一个线程里绘制好。Gui线程直接绘制就好了。
最后。。qml实现这个功能更简单。。。用animation 

设为首页 | 联系站长 | 友情链接 | 网站地图 |

copyright©youerw.com 优尔论文网 严禁转载
如果本毕业论文网损害了您的利益或者侵犯了您的权利,请及时联系,我们一定会及时改正。