QT使用GIF作程序启动画面
来源:互联网 发布:node.js和python 编辑:程序博客网 时间:2024/05/16 15:30
QT提供了QSplashScreen类,我们可以使用此类给QT程序添加启动画面。但是此类只可以加载jpg等静态图像。
如果我们需要播放gif图像,一般使用QMoive:
QLabel label; QMovie *movie = new QMovie("animations/fire.gif"); label.setMovie(movie); movie->start();
但是使用gif作为启动画面是有问题的。因为当程序启动的时候线程正在执行一些初始化操作,无法处理QMovie的events,所以只会显示第一帧的画面。
解决这个问题的方法就是适当的调用
qApp->processEvents();
调用这个函数可以处理事件。但这也不是解决办法,因为究竟调用多少次才合适呢?
我使用了这个方法
#include <QtGui>
#include <time.h>
#include "tests.h"
void MainSleep(unsigned msec)
{
clock_t start = clock();
while(true)
{
clock_t diff = clock()-start;
if(diff > msec) return;
qApp->processEvents();
}
}
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QTextCodec::setCodecForTr(QTextCodec::codecForName("GBK"));
QMovie *movie=new QMovie("Resources/generator.gif");
QLabel label;
label.setMovie(movie);
movie->start();
label.show();
qApp->processEvents();
qApp->processEvents();
MainSleep(800);
tests window;
qApp->processEvents();
MainSleep(800);
window.show();
label.close();
return app.exec();
}
但是在进行复杂初始化的时候,图片还是会暂停下来。
其他办法就是开辟新的线程,重写QSplashScreen类,或者写一个外部程序让主程序调用。这几个方法我没有测试。
- QT使用GIF作程序启动画面
- Qt 程序启动画面QSplashScreen的使用
- Qt程序启动画面
- Qt程序启动画面播放(gif与swf两种动画格式) - 路上的脚印
- Qt程序启动画面播放(gif与swf两种动画格式)
- QT添加程序启动画面
- 实现Qt程序启动画面
- qt添加程序启动画面
- Qt 之程序启动画面
- 实现Qt程序启动画面
- Qt之程序启动画面
- qt中使用启动画面
- 【Qt开发】实现Qt程序启动画面
- 【实例】Qt创建程序启动画面
- 自学QT之实现程序启动画面
- QT——程序启动画面
- QT设计程序启动时的画面
- 使用QSplashScreen做QT程序欢迎画面
- 很经典的GDB调试命令,包括查看变量,查看内存
- 新弹出的窗口最大化,和点击右上角最大化一样的效果
- 指针数组和数组指针
- 河南省第几届大学生程序设计 序号互换
- JDK中的javac,java,appletviewer作用
- QT使用GIF作程序启动画面
- 程序比程序员更理解c语言! cdecl程序(分析c语言的声明
- linux rfkill接口
- [JavaScript语言精粹]学习笔记
- Oracle亲身实验1:基本的SELECT语句
- MSDN的整合问题的解决---让VS2003用上MSDN2005
- 序号互换
- 使用WinDbg调试程序
- 42种编程语言写hello world .