• 7071阅读
  • 6回复

(已解决)qt下使用定时器连续播放bmp图像,为什么貌似timerEvent只被调用了一次 [复制链接]

上一主题 下一主题
离线xiaoyan124
 
只看楼主 倒序阅读 楼主  发表于: 2009-05-06
我想在qt4下使用定时器连续播放bmp图像,可是只播放了第一幅后就不动了,貌似timerEvent只被调用了一次,这是为什么啊?
具体问题描述:将按钮openimage的clicked信号和槽openimage()关联,在openimage()里调用myTimerId = startTimer(40)启动定时器,在类Mywindow里重载void timerEvent(QTimerEvent *event),timerEvent用来连续播放图像,关键步骤及代码如下:
首先打开图像文件temp.dat(temp.dat为多幅256*256的图像塑像数据文件):
QFile file1("temp.dat",this);
然后定位、读取、显示:
        file1.open(QIODevice::ReadWrite);
        file1.seek(65536*framenum);//显示一帧,framenum为当前显示的帧号
        //读图像数据 256*256,bmp的文件头已经读到buf的前1078个字节里了
        qint64 lineLength=file1.read( (char *)(buf+1078), (qint64)65536 );
                             QImage image;
                              image.loadFromData ( buf,66614,"BMP" );
                             QPixmap  pm;
            pm.convertFromImage(image,0);
             imagelabel->setPixmap(pm);
              repaint();
               framenum++;//显示下一帧
源码(是从qt3移植到qt4上的)及数据见附件。
[ 此帖被xiaoyan124在2009-06-10 23:15重新编辑 ]
附件: image.rar (1233 K) 下载次数:58
离线xiaoyan124
只看该作者 1楼 发表于: 2009-05-19
自己顶一个 已解决!路漫漫 吾将上下而求之!
离线xiaoyan124
只看该作者 2楼 发表于: 2009-06-10
      补充:错误是在.cpp文件中if(framenum=totalnum)那行 改为if(framenum==totalnum)就可以了……汗!!!
    共同学习,共同进步!
离线6美芝
只看该作者 3楼 发表于: 2009-06-11
看了个好诗歌,分享给大家,希望大家喜欢
一棵开花的树,祝愿本论坛象花一样永远有活力

看了个好诗歌,分享给大家,希望大家喜欢,喜欢的顶下哦,谢谢!祝愿本论坛越办越好,支持!!!

如何让你遇见我,在我最美丽的时刻,为这,我在佛前求了五百年,求佛让我们结一段尘缘,佛於是把我化做一棵树,长在你必经的路旁,阳光下,慎重地开满了花,朵朵都是我前世的盼望,当你走近,请你细听,那颤,是我等待的热情,而当你终於无视地走过,在你身後落了一地的,朋友啊,那不是花瓣,那是我凋零的心
我比较喜欢上面的诗歌,行车时候也听,就象悬臂吊一样吊我的心声,打开纯水机,想到今天上分器,也想做诗,保安一下哈哈,哈人才啊,看了看研磨豆浆机.渴了,喝水去了。 .   .  ..  .  .  .  .  .  .  

祝愿本论坛越办越好,支持!!! 斑竹不要删我贴子啊,谢谢了!

我不想用那迷雾
把我的心灵遮住
让你凝望了半天
感觉仍是一片模糊
我不想用一道藩篱
把我的思想束缚
笑就灿烂地笑
哭就晶莹地哭
你可知道你可知道
倘若我不能真实地
袒露自己
我是多么痛苦
离线pengxiaofei
只看该作者 4楼 发表于: 2009-06-15
你好,我现在也在做个屏保,可以留个联系方式吗 我的MSN  michel_peng@hotmail.com
离线allblue

只看该作者 5楼 发表于: 2009-06-15
路过
黑暗魔法
离线woshiisp
只看该作者 6楼 发表于: 2011-02-15
学习~~~~~~~~~~ 正在迷茫呢
QT~想要爱你不容易啊!不容易 也要 爱 哈哈哈
快速回复
限100 字节
 
上一个 下一个