Qt [GC9-5]:给我的程序添加启动画面(触发编译警告)

Qt [GC9-5]:给我的程序添加启动画面(触发编译警告)

基于Qt的汽车仪表模拟

在我们[GC9-2]中,pro有一个指令,如下

DEFINES += QT_DEPRECATED_WARNINGS #定义编译选项

这个的意义在于下图Qt [GC9-5]:给我的程序添加启动画面(触发编译警告)

下面就进入今天的正题,给我们的程序加一个启动画面,这个启动画面的本意是在程序启动时候,可能要加载多个文件,这些文件将比较耗时,这时用户就可能会误以为程序没有启动,所以,加一个启动的动画可以告诉用户,程序启动了,正在加载一些模块。效果图如下,这里使用的吉利的商标,侵删Qt [GC9-5]:给我的程序添加启动画面(触发编译警告)

这里我们需要用到一个新的东西,叫做QSplashScreen类,关于这类的详细信息可以去这里去看看,https://doc.qt.io/qt-5/qsplashscreen.html


我这里用到的比较简单,使用代码如下


因为我的程序比较简答,所以用到的Qtest,因此需要在pro文件中包含 testlib,目前整个pro文件如下

QT += core gui testlib              #表示要引入的Qt模块
greaterThan(QT_MAJOR_VERSION,4):QT += widgets       #为Qt4兼容设计,大意为版本高于Qt4就需要包含widgets模块
TARGET = GC9.1.0.0      #程序名称
TEMPLATE = app          #程序类型
DEFINES += QT_DEPRECATED_WARNINGS   #定义编译选线
RC_ICONS = ./Resources/Images/Core/LOGO.ico     #程序图标文件
 
SOURCES += \            #源文件
    Core/main.cpp \
    ControlPanel/controlpanel.cpp \
    HUD/hud.cpp
 
FORMS += \              #界面文件
    ControlPanel/controlpanel.ui \
    HUD/hud.ui
 
HEADERS += \            #头文件
    ControlPanel/controlpanel.h \
    HUD/hud.h
 
RESOURCES += \           #资源文件
    resources.qrc

如果大家用while循环实现,可以不用包含testlib模块

下面那就是在main.cpp中实现了。代码如下

 
#include"ControlPanel/controlpanel.h"
#include <QApplication>
#include <QSplashScreen>
#include <QPixmap>
#include <QTest>
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    QPixmap lodingPix(":/Core/Resources/Images/Core/login.png");        //建立pix图像对象
    QSplashScreen splash(lodingPix);                                    //建立QSplashScreen对象
    splash.show();                                                      //显示QSplashScreen
    a.processEvents();                                                  //大致意思就是把耗时的加载拿出放在一起线程里运行
    QTest::qSleep(3000);                                                //增加程序显示时间
    ControlPanel w;                                                     //建立控制台主界面
    w.show();                                                           //启动控制台
    splash.finish(&w);                                                  //QSplashScreen结束
    return a.exec();
}

以上就完成了程序启动动画的添加

Qt [GC9-5]:给我的程序添加启动画面(触发编译警告)

上一篇:linux shell 不同进制数据转换(二进制,八进制,十六进制,base64)


下一篇:css给未知宽高的元素添加背景图片