最近在做QT的程序启动画面的动画,用的是gif的动图。但是有个问题,就是总有一帧在背景那是静止的,也就是说动图叠上静止图上。如下图所示的齿轮所示。
左边的齿轮背后有个静止的齿轮,一直会在那,右边这个才是正确的,尝试了N多方法,还没有解决。直到后来,有一个人叫了我一声靓仔。我突然就发现了,原来是这样的。看下面的代码:
#include "mainwindow.h"
#include <QApplication>
#include <qsplashscreen.h>
#include <qlabel.h>
#include <qmovie.h>
#include <Windows.h>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
//找一张跟GIF动图大小的全透明图像,然后加载进行就可以了
QPixmap pixmappp("F:/LYB/xray/xray/x64/Release/Resources/ICO/toummin.gif");
QSplashScreen splashhh(pixmappp);
QMovie *Movie = new
QMovie("F:/LYB/xray/xray/x64/Release/Resources/ICO/start5.gif");
QLabel labelhhh(&splashhh);
labelhhh.setMovie(Movie);
Movie->start();
splashhh.show();
for (int i = 0; i < 5000; i += Movie->speed())
{
// QThread::sleep(Movie->speed());
Sleep(Movie->speed());
QCoreApplication::processEvents();
}
MainWindow w;
w.show();
return a.exec();
}
把这张图片换成与GIF动图一样大小的全透明图像就行了。 QPixmap pixmappp("F:/LYB/xray/xray/x64/Release/Resources/ICO/toummin.gif");
找不到?用PS新建一个,然后把背景去掉,存储为web所用格式,也就是gif就可以了
特来分享。
我是气搬砖大学生,我是全广东最靓的仔!