Qt动态显示图片(有点问题请高手指点!!)
2013-05-20 19:36
459 查看
我整了好多天啊, 想弄一个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了
如果有高手飘过,能否帮忙解决现实的时候有重叠问题啊?????
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了
如果有高手飘过,能否帮忙解决现实的时候有重叠问题啊?????
相关文章推荐
- Qt 打包发布 不能动态打开图片显示问题
- 发布的QT程序无法显示图标和图片的问题
- QT 显示动态gif图片
- 解决javascript动态改变img的src属性图片不显示问题
- 关于Qt中QLable显示图片的问题
- 谈一谈分别利用opencv、Qt、matlab动态显示图片的实现
- 发布的QT程序无法显示图标和图片的问题
- 编译好的QT程序在其他没有安装QT的机器上会出现图标和图片无法正常显示的问题。
- QT的exe文件移植到其他机器非png图片不显示问题
- 解决javascript动态改变img的src属性图片不显示问题
- 【转】发布的QT程序无法显示图标和图片的问题
- 关于使用了QtWebKit的PyQt程序打包后无法显示网页图片的问题(Mac0S和windows)
- Qt实现长图片的放大缩小以及动态显示
- QT+OpenGL读取显示图片,OpenGL在QT里的刷新问题(好几篇)
- QT的exe文件移植到其他机器非png图片不显示问题
- 解决用<img src="<%# Eval("ShowPhoto")%>"动态绑定图片,发布到IIS上无法显示的问题
- 发布的Qt工程无法显示图标和图片的问题
- Zedboardwebcam设计问题篇(三)-OpenCV+QT配置显示图片
- 解决javascript动态改变img的src属性图片不显示问题
- 解决Pycharm无法显示动态图片的问题