Qt App开机画面

Qt App开机画面

需要头文件
#include <QSplashScreen>
#include <QElapsedTimer>

1.只显示文字的开机提示

	QSplashScreen splash;
    splash.showMessage("loading...");
    splash.show();
    QElapsedTimer t;
    t.start();
    while(t.elapsed()<500)
    {
        QCoreApplication::processEvents();
    }

在这里插入图片描述
Ps:个人感觉不好看

2.只显示图片的开机提示

	QPixmap pix(":/Images/Loading.png");
    QSplashScreen splash(pix);
    splash.setDisabled(true);
    splash.show();
    QElapsedTimer t;
    t.start();
    while(t.elapsed()<500){
        QCoreApplication::processEvents();
    }

在这里插入图片描述

3.图片和文字一起显示的开机提示

	QPixmap pix(":/Images/Loading.png");
    QSplashScreen splash(pix);
    splash.setDisabled(true);
    splash.show();
    QElapsedTimer t;
    t.start();
    while(t.elapsed()<500){
        QCoreApplication::processEvents();
    }

在这里插入图片描述

在前三个的基础上做一些优化拓展

    QPixmap pix(":/Images/Loading.png");
    pix = pix.scaled(600,500, Qt::KeepAspectRatio, Qt::SmoothTransformation);
    /*(600,500, Qt::KeepAspectRatio, Qt::SmoothTransformation);
    600:当前屏幕的宽
    500:当前屏幕的高
    Qt::KeepAspectRatio:保持纵横比伸缩
    Qt::SmoothTransformation:去锯齿状处理
    */
    QSplashScreen splash(pix);
    splash.showMessage("loading...", Qt::AlignLeft|Qt::AlignBottom, QColor(128,128,128));
    /*showMessage()
     * 第一个参数是内容
     * 第二个参数是文字的对齐方式
     * 第三个参数是颜色
     */
    splash.setFont(QFont("Microsoft Yahei", 9));
    splash.setDisabled(true);
    splash.show();
    QElapsedTimer t;
    t.start();
    while(t.elapsed()<3000){
        QCoreApplication::processEvents();
    }

效果可以自己去试试看

完整代码

#include "mainwindow.h"
#include <QApplication>
#include <QSplashScreen>
#include <QElapsedTimer>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    QPixmap pix(":/Images/Loading.png");
    pix = pix.scaled(600,500, Qt::KeepAspectRatio, Qt::SmoothTransformation);
    /*(600,500, Qt::KeepAspectRatio, Qt::SmoothTransformation);
    600:当前屏幕的宽(可以是固定值,也可以是占屏幕的比例)
    500:当前屏幕的高(可以是固定值,也可以是占屏幕的比例)
    Qt::KeepAspectRatio:保持纵横比伸缩
    Qt::SmoothTransformation:去锯齿状处理
    */
    QSplashScreen splash(pix);
    splash.showMessage("loading...", Qt::AlignLeft|Qt::AlignBottom, QColor(128,128,128));
    /*showMessage()
     * 第一个参数是内容
     * 第二个参数是文字的对齐方式(可以是单独的居中或居左或居右等,
     * 也可以组合的Qt::AlignLeft|Qt::AlignBottom左下角)
     * 第三个参数是颜色(可以是red,blue,也可以是QColor形式的RGB色值)
     */
    splash.setFont(QFont("Microsoft Yahei", 9));
    splash.setDisabled(true);
    splash.show();
    QElapsedTimer t;
    t.start();
    while(t.elapsed()<3000){
        QCoreApplication::processEvents();
    }
    return a.exec();
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值