Qt制作程序启动界面类QSplashScreen实例测试详解

目录

一、QSplashScreen的概述

二、QSplashScreen静态图片加载

1、主程序实现

2、mainwindow.h实现

3、mainwindows.cpp实现

三、QSplashScreen动态图片加载

1、主程序实现

2、mainwindow.h实现

3、mainwindows.cpp实现


一、QSplashScreen的概述

QSplashScreen(启动画面)是一个用于在应用程序启动时显示的窗口。这个窗口通常会显示一个应用程序的logo,或者是一些关于应用程序的基本信息。在许多大型应用程序中,启动过程可能需要一些时间,这时候,一个美观的启动画面可以提升用户的体验,让用户在等待的过程中不会感到无聊。
在Qt中,QSplashScreen类就是用来创建启动画面的。它是一个窗口类,可以显示一个图片,并在图片上显示一些文本信息。QSplashScreen类提供了一些方法,可以方便地设置启动画面的图片和文本,以及控制启动画面的显示和隐藏。
QSplashScreen的基本使用方法很简单。首先,我们需要创建一个QSplashScreen对象,然后调用它的show方法将其显示出来。在应用程序的初始化过程结束后,我们再调用QSplashScreen的finish方法将其隐藏。这样,用户就可以在应用程序启动时看到一个美观的启动画面,而不是一个空白的窗口。

二、QSplashScreen静态图片加载

1、主程序实现

#include "mainwindow.h"#include <QApplication>
#include <QPixmap>
#include <QSplashScreen>
#include <QLabel>
#include <QMovie>
#include <Windows.h>int main(int argc, char *argv[])
{QApplication a(argc, argv);//test1 对于静态图的测试QPixmap pixmap(":/res/2.jpg");QSplashScreen splash(pixmap);splash.show();     //显示设置的启动图像a.processEvents(); //让程序在显示启动画面时仍然能够响应鼠标等其它事件MainWindow w;w.show();splash.finish(&w); //表示在主窗体对象初始化完成后,结束启动画面return a.exec();
}

2、mainwindow.h实现

#ifndef _MAINWINDOW_H
#define _MAINWINDOW_H#include <QMainWindow>QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACEclass MainWindow : public QMainWindow
{Q_OBJECTpublic:MainWindow(QWidget *parent = nullptr);~MainWindow();private:Ui::MainWindow *ui;
};
#endif // _MAINWINDOW_H

3、mainwindows.cpp实现

#include "mainwindow.h"
#include "ui_mainwindow.h"#include <QTextEdit>
#include <windows.h>MainWindow::MainWindow(QWidget *parent): QMainWindow(parent), ui(new Ui::MainWindow)
{ui->setupUi(this);QTextEdit *edit = new QTextEdit;edit->setText("Splash Example!");setCentralWidget(edit);resize(500, 500);Sleep(3000); //休眠3s
}MainWindow::~MainWindow()
{delete ui;
}

三、QSplashScreen动态图片加载

1、主程序实现

#include "mainwindow.h"#include <QApplication>
#include <QPixmap>
#include <QSplashScreen>
#include <QLabel>
#include <QMovie>
#include <Windows.h>int main(int argc, char *argv[])
{QApplication a(argc, argv);//test2 对于动态图的测试QPixmap pixmap(500, 500);QSplashScreen splash(pixmap);QLabel label(&splash);QMovie movie(":/res/3.gif");label.setMovie(&movie);movie.start(); //启动动画splash.show();splash.setCursor(Qt::BlankCursor);for(int i = 0; i < 3000; i += movie.speed()){a.processEvents(); //使程序在显示启动画面的同时仍能响应鼠标等其他事件Sleep(movie.speed()); // 延时}MainWindow w;w.show();splash.finish(&w); //表示在主窗体对象初始化完成后,结束启动画面return a.exec();
}

2、mainwindow.h实现

#ifndef MAINWINDOW_H
#define MAINWINDOW_H#include <QMainWindow>QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACEclass MainWindow : public QMainWindow
{Q_OBJECTpublic:MainWindow(QWidget *parent = nullptr);~MainWindow();private:Ui::MainWindow *ui;
};
#endif // MAINWINDOW_H

3、mainwindows.cpp实现

#include "mainwindow.h"
#include "ui_mainwindow.h"#include <QTextEdit>
#include <windows.h>MainWindow::MainWindow(QWidget *parent): QMainWindow(parent), ui(new Ui::MainWindow)
{ui->setupUi(this);QTextEdit *edit = new QTextEdit;edit->setText("Splash Example!");setCentralWidget(edit);resize(500, 500);Sleep(3000); //休眠3s
}MainWindow::~MainWindow()
{delete ui;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/31579.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

揭秘Xinstall如何助力App推广,提升用户量与转化率双指标!

在移动互联网时代&#xff0c;App的推广与运营成为了每个开发者必须面对的重要课题。然而&#xff0c;推广效果的评估和优化往往令众多开发者头疼不已。今天&#xff0c;我们将为您揭秘一款能够解决这一痛点的利器——Xinstall&#xff0c;带您一起探讨它如何助力App推广&#…

ARM32开发--存储器介绍

知不足而奋进 望远山而前行 目录 文章目录 前言 存储器分类 RAM ROM EEPROM Flash 总结 前言 在现代计算机系统中&#xff0c;存储器扮演着至关重要的角色&#xff0c;不仅影响着数据的存取速度和稳定性&#xff0c;还直接关系到计算机系统的性能和应用场景的选择。存…

密码CTF(4)——e和phi不互素

参考 RSA中e和phi不互素 AMM算法 AMM算法简要理解 RSA系列解题研究——e与phi不互素 - 先知社区 (aliyun.com) e与phi不互素 --- 四 1 1 1道题详记-CSDN博客 总述 gcd(e,φ(n))比较小时可以考虑iroot直接开根&#xff0c;当直接开根跑不出来时&#xff0c;考虑有限域…

redis哨兵模式下业务代码连接实现

目录 一&#xff1a;背景 二&#xff1a;实现过程 三&#xff1a;总结 一&#xff1a;背景 在哨兵模式下&#xff0c;真实的redis服务地址由一个固定ip转变为可以变化的ip,这样我们业务代码在连接redis的时候&#xff0c;就需要判断哪个主redis服务地址&#xff0c;哪个是从…

MySQL权限USAGE和ALL PRIVILEGES的含义和用法

USAGE 含义&#xff1a;USAGE权限是一个非常基础的权限&#xff0c;它实际上并不赋予用户执行任何数据库操作的权限&#xff0c;如查询、插入、更新或删除数据等。它的主要目的是允许用户连接到MySQL服务器&#xff0c;但除此之外没有其他操作权限。当你只想让用户能够登录到数…

a multiple definition link error when using gcc10.3.1

1 环境说明 硬件环境&#xff1a;LS1046A arm64 系统环境&#xff1a;openEuler release 22.03 (LTS-SP1) gcc10.3.1 2 问题现象 一个客户在设备上编译 Suricata 3.1.1 时发现链接时有很多 multiple definition 的错误&#xff0c; 类似如下&#xff1a; /usr/bin/l…

文件上传漏洞-上篇

一、概述 文件上传漏洞可以说是日常渗透测试中用得最多的一个漏洞&#xff0c;用它获得服务器权限最快最直接。在web程序中&#xff0c;经常需要用到文件上传的功能。如用户或者管理员上传图片&#xff0c;或者其它文件。如果没有限制上传类型或者限制不严格被绕过&#xff0c…

G1的收集流程

G1&#xff08;Garbage-First&#xff09;收集器的垃圾收集流程相对复杂&#xff0c;涉及多个阶段和算法。以下是G1收集器的基本收集流程&#xff1a; 初始标记阶段&#xff08;Initial Marking&#xff09;&#xff1a; 这是一个短暂的STW&#xff08;Stop-The-World&#xff…

大数据学习-Hive

介绍 分布式 SQL 计算 做数据的统计分析&#xff0c;SQL 是最方便的工具 在大数据中&#xff0c;有很多的统计分析场景&#xff0c;那么 SQL 来处理大数据是非常合适且频繁的 以后可能就是 SQL Boy 了&#xff0c;所以学习前需要有 MySQL 的基础 Hive 的功能 是一个分布式…

【软件测试入门】测试用例经典设计方法 — 因果图法

&#x1f345; 视频学习&#xff1a;文末有免费的配套视频可观看 &#x1f345; 点击文末小卡片 &#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 一、因果图设计测试用例的步骤 1、分析需求 阅读需求文档&#xff0c;如果User Case很复杂&am…

测试技术初阶

1.测试用例设计 黑盒测试用例 等价类边界值因果图判定表正交试验场景分析状态图错误推断 白盒测试用例 语句覆盖判定覆盖条件覆盖条件/判定覆盖条件组合覆盖修正判定条件覆盖点覆盖边覆盖路径覆盖 2基础体验评测 功能体验 完备性准确性易用性易学性展示样式任务路径竞手对比兼…

小程序业务逻辑回忆2

1.用户下单购票业务 购票业务中可购选4中票,普通票、学生票、vip贵宾票、指定日票。购票类型用ticket_id 进行区分,每种类型票用户都可以购买 n张,但是用户只能激活一张,其他票可用于转增。 用户下单购票时首先以user_id创建order表&#xff0c;然后用工具类生成订单号&…

k8s_服务发现专题

在 Kubernetes 中,服务发现(Service Discovery)是指如何在集群内不同的应用程序或服务之间找到并与其他服务通信。Kubernetes 提供了内置的服务发现机制,通过服务(Service)和 DNS 解析来实现。这使得在集群内部署和管理应用程序变得更加方便和高效。 我们带着以下问题开…

css恢复默认样式

重置样式为浏览器默认样式&#xff1b; .element-reset {all: revert;outline-style: revert !important;-webkit-appearance: revert !important; }<input type"button" value"跳转" class"element-reset" />

java构建一个OA审批系统

构建一个完整的OA审批系统涉及多个模块&#xff0c;包括用户管理、权限控制、审批流程设计以及前端界面等。以下是一个综合性的示例&#xff0c;展示了如何整合这些模块并实现基本功能。 ### 数据库设计 首先&#xff0c;定义一些基本的数据库表结构&#xff0c;用于存储用户…

芜湖市各地企业技术中心补助指南 附镜湖鸠江技术中心申报奖励+认定条件周期+流程

芜湖市各地企业技术中心申报周期 省企业技术中心的认定&#xff0c;原则上每年进行一次。各市经济和信息化主管部门根据省经济和信息化厅通知要求报送申请材料&#xff0c;受理截止日期以当年工作通知为准。 芜湖市各地企业技术中心补助汇编 市级&#xff08;2023年兑现政策…

电商项目测试实战之购物车页面用例设计

&#x1f345; 视频学习&#xff1a;文末有免费的配套视频可观看 &#x1f345; 点击文末小卡片&#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 一、购物车页面 二、购物车页面测试范围列表 三、购物车页面功能点需求分析 四、部分功能点的测试…

vscode CMAKE 配置调试

概述 记录使用VSCODE中的CMAKE拓展构建项目时出现的报错 CMakePresets.json&#xff1a; {"version": 6,"configurePresets": [{"name": "x64-debug","displayName": "x64-debug","cmakeExecutable":…

Hi3861 OpenHarmony嵌入式应用入门--中断按键

本篇讲解gpio的中断使用方式。 硬件原理图如下&#xff0c;与上一篇一样的电路 GPIO API API名称 说明 hi_u32 hi_gpio_init(hi_void); GPIO模块初始化 hi_u32 hi_io_set_pull(hi_io_name id, hi_io_pull val); 设置某个IO上下拉功能。 hi_u32 hi_gpio_set_dir(hi_gpio_…

cefsharp 修改请求头request.Headers,以实现某种请求验证(v100+已测试)含主要源码和注释

(一)目的:cefsharp实现修改请求头 Tip:网上搜的很多代码都无法实现(要么版本较低,方法有变,要么就行不通),较多的错误是:集合属性只读。其中一个bili网友的测试方法注解一张图,但没有具体代码。参考一下。 (二)实现方法 2.1 创建对象 ChromiumWebBrowser home…