Qt实战-程序启动动画

1、项目介绍

很多的商用软件在启动之前都会有一段启动动画,当启动动画消失时,软件的主界面也就会呈现。程序的启动动画可以帮助我们了解到软件的一些相关信息,下面将介绍一个我自己设计的比较美观的程序启动动画。

2、UI界面的设计

如下是SplashScreen.ui的设计界面:
在这里插入图片描述

2.1、美化界面的qss代码

QLabel#label{
color:rgb(254,121,199);
}
QLabel#label_2{
color:rgb(98,114,164);
}
QLabel#label_3{
color:rgb(98,114,164);
}
QLabel#label_4{
color:rgb(98,114,164);
}
QFrame#frame{
background-color:rgb(56,58,89);
color:rgb(220,220,220);
border-radius:10px;
}
QProgressBar{
background-color:rgb(98,114,164);
color:rgb(200,200,200);
border-style:none;
border-radius:10px;
text-align:center;
}
QProgressBar::chunk{
border-radius:10px;
background-color: qlineargradient(spread:pad, x1:0, y1:0.511364, x2:1, y2:0.523, stop:0 rgba(254, 121, 199, 255), stop:1 rgba(170, 85, 255, 255));
}

3、完整代码

SplashScreen.h如下:

#pragma once

#include <QWidget>
#include "ui_SplashScreen.h"
#include<QTimer>
#include"MainWindow.h"


class SplashScreen : public QWidget
{
	Q_OBJECT

public:
	SplashScreen(QWidget *parent = nullptr);
	~SplashScreen();

private slots:
	void updateBarValue();

private:
	Ui::SplashScreenClass ui;
	QTimer *m_timer;
	int m_value;
	MainWindow* win;
};

SplashScreen.cpp如下:

#include "SplashScreen.h"
#include<QGraphicsDropShadowEffect>

SplashScreen::SplashScreen(QWidget *parent)
	: QWidget(parent)
{
	ui.setupUi(this);
	m_timer = new QTimer(this);
	connect(m_timer, &QTimer::timeout, this, &SplashScreen::updateBarValue);
	m_timer->start(30);
	this->setWindowFlag(Qt::FramelessWindowHint);
	this->setAttribute(Qt::WA_TranslucentBackground);
	//设置边框阴影
	QGraphicsDropShadowEffect* shadow = new QGraphicsDropShadowEffect(this);
	shadow->setOffset(0, 0);
	shadow->setColor(QColor(0, 0, 0, 60));
	shadow->setBlurRadius(10);
	this->ui.frame->setGraphicsEffect(shadow);
	m_value = 0;
	this->ui.progressBar->setValue(0);
}

SplashScreen::~SplashScreen()
{}

void SplashScreen::updateBarValue()
{
	m_value++;
	this->ui.progressBar->setValue(m_value);
	if (m_value >= 100)
	{
		win = new MainWindow();
		win->show();
		m_timer->stop();
		this->close();
	}
}

main.cpp如下:

#include "MainWindow.h"
#include <QtWidgets/QApplication>
#include"SplashScreen.h"

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
#if 0
    MainWindow w;
    w.show();
#endif
    SplashScreen screen;
    screen.show();
    return a.exec();
}

4、效果图

在这里插入图片描述

  • 3
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Qt loading动画指的是使用Qt编程框架实现的加载动画。在许多应用程序中,当需要进行较长时间的操作时,为了让用户等待过程显得不那么无聊和沉闷,开发者常常运用动画效果来提高用户体验。 Qt作为一种跨平台的应用程序开发框架,提供了丰富的动画效果实现方式,其中包括通过QMovie类实现的序列帧动画,通过QPropertyAnimation实现的属性动画,以及通过QGraphicsItemAnimation实现的图形项动画等。 其中,通过QMovie实现的序列帧动画较为简单,只需要将动画制作成一张张图片,将其放置在特定的文件夹中,再使用QMovie类进行加载即可。而通过QPropertyAnimation实现的属性动画则更精细一些,它可以让开发者对控件的各个属性进行动画处理,例如位置、大小、颜色等。通过QGraphicsItemAnimation实现的图形项动画则更加灵活,可以在图形界面中自由地移动、旋转、形变等,让用户视觉感受更加丰富。 总之,Qt提供的各种动画实现方式可以让开发者轻松地创造出独特的加载动画,提高用户体验,使应用程序更加吸引人。 ### 回答2: Qt是一种跨平台的GUI开发框架,为开发者们提供了丰富的图形组件和API,让他们可以轻松构建美观、功能丰富的应用程序。在Qt中,开发者可以使用QMovie组件创建Loading动画,以增强用户体验和反馈性。 QMovie 是 Qt 中一种简单的类,它可以加载一些图片(通常作为逐帧的图片),然后以 GIF 形式播放这些图片。加载逐帧图片的时候,只需要指定一个 GIF 文件的路径,就可以通过 setMovie() 方法将其与一个 QLabel 部件进行关联,这样 QLabel 就可以展示这些逐帧图片。 Loading 动画通常是在等待长时间任务或慢速的网络连接时出现,告诉用户程序正在工作。优秀的加载动画可以给用户带来良好的用户体验。以下是一些建议: 1.简单明了。Loading 动画应该是简单的动画序列,以便用户在等待时可以轻松地理解和计时。 2.与主题相关。Loading 动画应该与应用程序的主题和风格相匹配。 3.不要占用太多资源。Loading 动画的大小和复杂性不应该占用太多的系统资源,否则会影响应用程序的性能。 综上所述,在Qt中添加Loading动画可以在等待时间长的过程中为用户提供良好的反馈和用户体验。QMovie组件是非常适合用于创建简单的Loading动画。为了优化用户体验,需要遵循建议并定义与主题相关的动画。 ### 回答3: Qt Loading动画是一种动态效果,用于在等待时间较长的操作期间打破沉默并提供用户反馈。 Qt是一种跨平台的C++应用程序开发框架,可以用于开发GUI应用程序、移动应用程序和嵌入式系统。在此框架下,我们可以使用Qt Loading动画实现对软件或应用程序的一个或多个方面进行加载时(例如从硬盘读取或从网络下载数据等)的指示。这种动画可以是单一、简单的循环动画或复杂的多功能动画Qt Loading动画通常可以包括旋转图标、淡入淡出的文本或背景,甚至可以包含如“加载中”或“请稍候”的提示文本。这些动画可以很好地提高用户的心理体验,同时也可以增强用户对软件或应用程序的可用性和性能的信任感。 总之,Qt Loading动画对于开发人员来说是一个有效的方式来提醒用户他们的请求正在处理中。通过简单而美观的动画效果,Qt Loading动画可以提高用户忍耐度,并创建出更易于使用和愉悦的用户界面。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值