Qt笔记(四十六)之Qt设置启动动画(1)

本文介绍了如何在Qt应用程序中通过QSplashScreen组件提升用户体验,避免软件启动时的空白等待。作者提供了两种实现方式:一是处理完耗时操作后显示界面,二是设定固定延迟时间后显示。这两种方法都结合了加载动画和消息提示,确保用户在软件启动期间能够获得反馈,从而提高整体的交互感受。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一.前言
楼主在实际开发中,会遇到一些情况就是软件启动的时候会去登录服务器,获取一些信息,这个过程中会有一定的耗时,如果一开始就出现软件界面,然后没有反应,客户体验感会变差,所以可以设置一个开机效果来作为缓冲。楼主分享两类遇到的需要增加动画

二.实现过程
备注:以下代码都在main.cpp中添加
1.处理完耗时的操作再显示界面

    Widget w;
    QPixmap pixmap("://loading.png");
    QSplashScreen *sp = new QSplashScreen(pixmap);
    // showMessage参数分别为 提示文本,提示文本位置(相对图片) 文本颜色
    sp->showMessage("软件正在疯狂加载中",Qt::AlignCenter,Qt::red);
    sp->show();

    // 不断重绘制
    sp->repaint();
    //    模拟登录
    w.isLogin();

    sp->finish(&w);
    delete sp;
    sp = nullptr;

    w.show();

    return a.exec();
void Widget::isLogin()
{
    // 模拟登录操作耗时
    for(int i=0;i<10000;i++)
    {
        //
    }
}

在这里插入图片描述
2.做固定的延时再显示界面

    Widget w;
    QPixmap pixmap("://loading.png");
    QSplashScreen *sp = new QSplashScreen(pixmap);
    // showMessage参数分别为 提示文本,提示文本位置(相对图片) 文本颜色
 //   sp->showMessage("软件正在疯狂加载中",Qt::AlignCenter,Qt::red);
    sp->show();

    QDateTime time=QDateTime::currentDateTime();
    QDateTime curTime = QDateTime::currentDateTime();
    qDebug()<<time.secsTo(curTime);
    while (time.secsTo(curTime)<=5) {
        QString str = QString("%1:%2").arg("软件正在疯狂加载中").arg(QString::number(time.secsTo(curTime)));
        sp->showMessage(str,Qt::AlignCenter,Qt::red);
        curTime=QDateTime::currentDateTime();
        a.processEvents();
    }

    // 不断重绘制
  //  sp->repaint();
    //    模拟登录
    //w.isLogin();

    w.show();
    sp->finish(&w);
    delete sp;
    sp = nullptr;

    return a.exec();

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值