Qt设置软件启动动画(开屏动画、欢迎界面)

启动动画的相关接口为QSplashScreen。

版本1:显示图片+延时

代码很简单,只需要在main.cpp中添加几行代码即可实现:

#include "pclvisualizer.h"

#include <QApplication>
#include <QDateTime> //添加QDateTime头文件
#include <QPixmap>
#include <QSplashScreen>
int
main(int argc, char* argv[])
{
  QApplication a(argc, argv);

  QPixmap pixmap("Qt.png");     //读取图片
  QSplashScreen splash(pixmap); //
  splash.setWindowOpacity(0.8); // 设置窗口透明度
  splash.show();
  splash.showMessage("程序正在加载......", Qt::AlignCenter, Qt::red); //显示文字
  QDateTime time = QDateTime::currentDateTime();
  QDateTime currentTime = QDateTime::currentDateTime(); //记录当前时间
  while (time.secsTo(currentTime) <= 5) // 5为需要延时的秒数
  {
    currentTime = QDateTime::currentDateTime();
    a.processEvents();
  };

  PCLVisualizer w;
  w.show();

  splash.finish(&w); //在主体对象初始化完成后结束启动动画

  return a.exec();
}

效果如下图:

 版本2:显示gif动态图片+延时

#include <QApplication>
#include <QMovie>
#include <QPixmap>
#include <QSplashScreen>

int
main(int argc, char* argv[])
{
  QApplication a(argc, argv);

  QSplashScreen splash(pixmap); //
  splash.setWindowOpacity(0.8); // 设置窗口透明度
  QLabel label(&splash);
  QMovie mv("G.gif");
  label.setMovie(&mv);
  mv.start();
  //显示此启动图片
  splash.show();
  splash.setCursor(Qt::BlankCursor);
  for (int i = 0; i < 3000; i += mv.speed()) {
    a.processEvents(); //使程序在显示启动画面的同时仍能响应鼠标等其他事件
    Sleep(mv.speed()); // 延时
  }

  PCLVisualizer w;
  w.show();

  splash.finish(&w); //在主体对象初始化完成后结束启动动画

  return a.exec();
}

参考文章:

Qt实现程序启动动画_晓星-优快云博客_qt启动动画演示一个应用程序启动时,添加启动动画的小例子。所谓启动动画,就是说当一个应用程序启动时,在展示主窗口之前,有可能会先去初始化一些运行环境,验证用户信息等前提工作。那么在这段空闲期程序的启动过程是没有用户界面的,而用户也无法得知程序的状态,所以就需要在这段空白时间中,向用户提供一个展示程序运行状态的窗口,来为用户提供积极的正反馈。启动动画在很多软件中得到了应用,例如游戏加载画面,VS的启动画面等...https://blog.youkuaiyun.com/a849473785/article/details/95939641

QT 程序启动动画_Sakuya__的博客-优快云博客_qt启动动画简述我们日常用的很多软件都有启动动画,比如Visual Studio和PyCharm在打开软件之前都会有一个加载各种组件的过程。它们的启动动画就是告诉你程序正在打开的过程中,正在加载组件,而不是让你以为程序没有启动。那么,QT中可不可以实现这样的效果呢,当然是可以的。QT提供了QSplashScreen这个类来实现启动动画的效果。效果代码之路最基本的...https://blog.youkuaiyun.com/sakuya__/article/details/88973724

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

SOC罗三炮

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值