Qt动态显示图片(有点问题请高手指点!!)

我整了好多天啊, 想弄一个FL2440启动的动态logo,这几天吧我整惨了。

MP3的解码高定了,但是又有一个动画的和内存问题了,先解决动画。

我用的是连续播放图片的形式。但是在用的时候有点问题,希望哪位高手能帮忙解决或者符代码。

我的这个能现实。

这是main.cpp

#include <QApplication>
#include "picture.h"
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
MainWindow wmain;
wmain.show();

return app.exec();
}

第二个是picture.h

#include <QLabel>
#include <QMovie>
#include <QTimer>
#include <QGridLayout>
#include <QDialog>
#include <QRect>
#include <QPixmap>


class MainWindow:public QDialog
{
Q_OBJECT
public:
MainWindow();
QLabel *label; 
QMovie *movie ; 
QTimer *timer;
QGridLayout *layout;
QRect *movRect;
QPixmap *mr;
private slots:
void painter();
};


第三个是picture.cpp

#include "picture.h"


int i = 0;
QString imag[4]={"./1.png", "./2.png", "./3.png", "./bg.png"};


MainWindow:: MainWindow()
{
setWindowTitle(tr("picture"));
layout= new QGridLayout(this);


timer = new QTimer(this);
timer->start(1000);   //定时1秒改变图片
connect(timer, SIGNAL(timeout()), this, SLOT(painter()) );


}
void MainWindow::painter()
{
mr = new QPixmap(imag[i]); 
int width = mr->width (); 
int height = mr->height (); 
movRect = new QRect(0, 0, width, height); 
QRect rect = this->geometry (); 
rect.setWidth (width); 
rect.setHeight (height); 
rect.setX (0); 
rect.setY (0); 
this->setGeometry (rect);


this->repaint();


label = new QLabel();
movie = new QMovie(imag[i++]);
layout->addWidget(label, 0, 0);
label->setMovie(movie);
movie->start();
label->show();
if(i == 4)
{ i=0;
//timer->stop();
//label->setMovie(NULL);
}


}

将图片放在与代码同一个目录

然后使用命令

$qmake  -project  -o  picture.pro

$qmake  picture.pro

$make

$./picture

就可以看见图片现实了。在linux下是这样,在window是下就更简单了

建立工程,将文件添加,编译就OK了

如果有高手飘过,能否帮忙解决现实的时候有重叠问题啊?????

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值