在上一篇文章:Qt实战案例(5)——程序启动画面的实现(QSplashScreen)中遇到了一个问题:明明加载的是gif动画,为什么显示的时候只显示的静态图片???
本文将介绍如何在程序启动画面设置gif动图。
目录
一、项目介绍
- 一、项目介绍
- 二、项目基本配置
- 三、UI界面设计
- 四、主程序实现
- 4.1 mainwindow.h头文件
- 4.2 mainwindow.cpp源文件
- 4.3 main.cpp源文件
- 五、效果演示
利用QSplashScreen类实现在程序启动过程中显示gif动图的功能。
二、项目基本配置新建一个Qt案例,项目名称为“SplashScreen”,基类选择“QMainWindow”,取消创建UI界面复选框的选中状态,完成项目创建。
三、UI界面设计无UI界面
四、主程序实现 4.1 mainwindow.h头文件无需操作
4.2 mainwindow.cpp源文件设置主界面实现,主要内容为:设置窗口标题,设置显示文字等。 核心代码如下:
#include
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
{
setWindowTitle("Splash Example");//设置窗口标题
QTextEdit *edit=new QTextEdit;//新建可编辑文本
edit->setText("Splash Example!");//显示内容
setCentralWidget(edit);//将edit设置为中心部件
resize(600,450);//调整窗体大小
}
显示内容如下:
在编写main.cpp之前,首先需要添加资源文件,资源文件添加十分简单,这里不进行详细介绍,我的代码中将图片r.gif添加到Qt资源文件res中,如下所示。 然后编写main.cpp代码。首先需要创建一个QPixmap对象存放gif动画,其尺寸是gif的尺寸,然后利用QPixmap对象创建一个QSplashScreen对象,接着创建一个Label放置该动图,利用QMovie创建gif对象,核心代码如下:
QApplication a(argc, argv);
QPixmap pixmap(250,160);//gif动画的尺寸大小
QSplashScreen splash(pixmap);//利用QPixmap对象创建一个QSplashScreen对象
QLabel label(&splash);
//设置label大小和位置
QMovie mv(":/res/r.gif");
label.setMovie(&mv);
mv.start();
//显示此启动图片
splash.show();
splash.setCursor(Qt::BlankCursor);
for (int i = 0; i
关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?