• Qt5开发从入门到精通——第四篇十三节(程序启动画面 )


    欢迎小伙伴的点评✨✨,相互学习、互关必回、全天在线🍳🍳🍳
    博主🧑🧑 本着开源的精神交流Qt开发的经验、将持续更新续章,为社区贡献博主自身的开源精神👩‍🚀


    前言

    本章节将会给大家带来程序启动画面的详细使用方法


    一、程序启动画面概述

    多数大型应用程序启动时都会在程序完全启动前显示一个启动画面,在程序完全启动后消失。程序启动画面可以显示相关产品的一些信息,使用户在等待程序启动的同时了解相关产品的功能,这也是一个宣传的方式。 Qt 中提供的 QSplashScreen 类实现了在程序启动过程中显示启动画面的功能。

    二、效果实例

    图一
    图片放到构建文件build-QSplashScreen-Desktop_Qt_5_12_2_MinGW_32_bit-Debug目录下

    在这里插入图片描述

    三、原码解析

    mainwindow.h

    #ifndef MAINWINDOW_H
    #define MAINWINDOW_H
    
    #include 
    
    class MainWindow : public QMainWindow
    {
        Q_OBJECT
    
    public:
        MainWindow(QWidget *parent = 0);
        ~MainWindow();
    };
    
    #endif // MAINWINDOW_H
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    main.cpp

    #include "mainwindow.h"
    #include 
    #include 
    #include 
    int main(int argc, char *argv[])
    {
        QApplication a(argc, argv);            //创建一个QApplication对象
        QPixmap pixmap("PKQ.png");             //(a)
        QSplashScreen splash(pixmap);          //(b)
        splash.show();                         //显示此启动图片
        a.processEvents();                     // (c)
        MainWindow w;                          //(d)
        QFont font("Microsoft YaHei", 30, 25); //设置文字格式及大小
        w.setFont(font);                       
        w.show();
        splash.finish(&w);                     //(e)
        return a.exec();
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19

    其中,
    (a)QPixmap pixmap(“PKQ.png”):创建一个 QPixmap 对象,设置启动图片(这里设置为 Qt的图标 “PKQ.png”) 。
    (b)QSplashScreen splash(pixmap):利用 QPixmap 对象创建一个 QSplashScreen 对象。
    (c)a.processEvents():使程序在显示启动画面的同时仍能响应鼠标等其他事件。
    (d)MainWindow w、w.show():正常创建主窗体对象,并调用 show()函数显示。
    (e)splash.finish(&w):表示在主窗体对象初始化完成后,结束启动画面。中央的 Qt 图片首先出现 1 秒 (s), 然后才弹出 “I love 皮卡丘” 窗口。

    mainwindow.cpp

    #include "mainwindow.h"
    #include 
    #include 
    MainWindow::MainWindow(QWidget *parent)
        : QMainWindow(parent)
    {
        setWindowTitle("皮卡丘");
        QTextEdit *edit=new QTextEdit;
        edit->setText("I love 皮卡丘");
        setCentralWidget(edit);
        resize(600,450);
        Sleep(1000); //由于启动画面通常在程序初始化时间较长的情况下出现,
                     //为了使程序初始化时间加长以显示启动画面,
                     //此处调用 Sleep()函数,使主窗口程序在初始化时休眠几秒。
    }
    
    MainWindow::~MainWindow()
    {
    
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21

    四、总结

    程序启动画面会在应用程序开发中经常用到的

  • 相关阅读:
    centos7.8手动部署php环境 04 phpMyAdmin安装
    实现paho.mqtt.cpp库编译
    机器学习部分知识点总结
    新能源商用车、物流车及末端配送车亮相2024快递物流展
    千“垂”百炼:垂直领域与语言模型(1)
    【前端修炼场】— 在页面里面放图片,你学废了么?
    【Kotlin精简】第5章 简析DSL
    C语言:关键字---union(声明共用体类型)
    说说你对单例模式的理解?如何实现?
    GEE|时间序列分析(四)
  • 原文地址:https://blog.csdn.net/weixin_44759598/article/details/126688262