目录
- 一、项目介绍
- 二、项目基本配置
- 三、UI界面设计
- 四、主程序实现
- 4.1 mainwindow.h头文件
- 4.2 mainwindow.cpp源文件
- 4.3 main.cpp源文件
- 五、效果演示
一、项目介绍
多数应用程序启动时都会在程序完全启动前显示一个启动画面,在程序完全启动后消失。程序启动画面可以显示相关产品的一些信息,使用户在等待程序启动的同时了解相关产品的功能,这也是一个宣传的方式。Qt中提供了QSplashScreen类实现了在程序启动过程中显示启动画面的功能。
二、项目基本配置
新建一个Qt案例,项目名称为“SplashScreen”,基类选择“QMainWindow”,取消创建UI界面复选框的选中状态,完成项目创建。
三、UI界面设计
无UI界面
四、主程序实现
4.1 mainwindow.h头文件
无需操作
4.2 mainwindow.cpp源文件
设置主界面实现,主要内容为:设置窗口标题,设置显示文字等。
核心代码如下:
#include<QTextEdit>
#include<windows.h>
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
{
setWindowTitle("Splash Example");//设置窗口标题
QTextEdit *edit=new QTextEdit;//新建可编辑文本
edit->setText("Splash Example!");//显示内容
setCentralWidget(edit);//将edit设置为中心部件
resize(600,450);//调整窗体大小
Sleep(1000);//休眠1000ms
}
显示内容如下:
由于启动画面通常在程序初始化时间较长的情况下出现,为了使程序初始化时间加长以显示启动画面,此处调用Sleep()函数,使窗口在初始化时休眠1000ms。
【注意】:调用Sleep()函数之前需要首先声明头文件,如果是windows平台,则需要
#include <windows.h>
如果是linux平台,则需要:
#include <sys/stat.h>
4.3 main.cpp源文件
在编写main.cpp之前,首先需要添加资源文件,资源文件添加十分简单,这里不进行详细介绍,我的代码中将图片r.gif添加到Qt资源文件res中,如下所示。
然后编写main.cpp代码。完整代码如下:
#include "mainwindow.h"
#include <QApplication>
#include<QPixmap>
#include<QSplashScreen>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QPixmap pixmap(":/res/r.gif");//创建QPixmap对象,设置启动图片
QSplashScreen splash(pixmap);//利用QPixmap对象创建一个QSplashScreen对象
splash.show();//显示此启动图像
a.processEvents();//使程序在显示启动画面时仍能响应鼠标等其他事件
MainWindow w;
w.show();
splash.finish(&w);//表示在主窗体对象初始化完成后,结束启动画面
return a.exec();
}
图片首先出现1000ms(即1s),然后弹出”Splash Example“窗体。
五、效果演示
完整代码可参考:
ok,以上便是全部内容了,如果对你有所帮助,记得点个赞哟~
Question:
这里遇到一个问题:明明加载的是gif动画,为什么显示的时候只显示的静态图片???
这个问题将在下一篇文章中进行介绍。欢迎关注~