基于Qt的汽车仪表模拟
在我们[GC9-2]中,pro有一个指令,如下
DEFINES += QT_DEPRECATED_WARNINGS #定义编译选项
这个的意义在于下图
下面就进入今天的正题,给我们的程序加一个启动画面,这个启动画面的本意是在程序启动时候,可能要加载多个文件,这些文件将比较耗时,这时用户就可能会误以为程序没有启动,所以,加一个启动的动画可以告诉用户,程序启动了,正在加载一些模块。效果图如下,这里使用的吉利的商标,侵删
这里我们需要用到一个新的东西,叫做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(); }
以上就完成了程序启动动画的添加