qt启动画面实现

简介: 在程序启动时常由于加载数据或加载库文件会一段时间才弹出主窗口,期间心急或不明所以的用户会以为 app有问题,“咋半天没反应呢”,这时添加启动画面及告诉用户数据在加载中,qt已经集成了该功能-QSplashScreen ,直接调用即可。

在程序启动时常由于加载数据或加载库文件会一段时间才弹出主窗口,期间心急或不明所以的用户会以为 app有问题,“咋半天没反应呢”。

这是我们就可以通过一个启动画面告知用户一些信息,请他们耐心等候。

QT已提供了QSplashScreen来处理启动画面,

1)QSplashScreen ( const QPixmap & pixmap = QPixmap(), Qt::WindowFlags f = 0 );//默认desktop为父窗体
2)QSplashScreen ( QWidget * parent, const QPixmap & pixmap = QPixmap(), Qt::WindowFlags f = 0 );//可指定父窗体

当然,一个app可以设置多个启动画面,例如在列表中用户操作加载大量数据时,用一个启动画面提示用户要比鼠标等候状态:

QApplication::setOverrideCursor(QCursor(Qt::WaitCursor));
QApplication::restoreOverrideCursor();

显示来得更有意思。

void    finish ( QWidget * mainWin );可以设置主窗口显示出来,并且 启动画面隐藏,当然程序员也可以按自己的喜欢自行调用close 直接关闭


示例代码:

//main.cpp

#include <QApplication>
#include <QSplashScreen>
#include <QDesktopWidget>
#include <QFont>
#include <QObject>
#include <QTimer>
#include <QMainWindow>

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

    QSplashScreen splash(QPixmap(":/images/splash.jpg"));
    QFont _font("Courier New", 20);
    _font.setBold(true);
    splash.setFont(_font);
    splash.move ((QApplication::desktop()->width() - splash.width())/2
    ,(QApplication::desktop()->height() - splash.height())/2);
    splash.show();
    splash.showMessage(
        "SplashScreen test\n"
        "version 1.2.14\n"
        "xxx All rights reserved\n"
        "load data from db,please wait!\n"
        ,Qt::AlignHCenter);
    //
    app.processEvents();

    QMainWindow w;
    //设置延迟,防止一闪而过
    QTimer timer;
    QObject::connect(&timer,SIGNAL(timeout()),
        &w, SLOT(show()));
    QObject::connect(&timer,SIGNAL(timeout()),
        &splash, SLOT(close()));
    timer.start(1000);

    return app.exec();
}

//main.cpp

//.pro

TEMPLATE = app
DESTDIR = bin
CONFIG += qt debug_and_release static

CONFIG(debug, debug|release) {
    TARGET          = SplashScreend
    OBJECTS_DIR     = debug/obj
    MOC_DIR         = debug/moc
} else {
    TARGET          = SplashScreen
    OBJECTS_DIR     = release/obj
    MOC_DIR         = release/moc
}

SOURCES += main.cpp\

RESOURCES += ./SplashScreen.qrc

//.pro

//.qrc

<RCC version="1.0">
    <qresource prefix="/images">
        <file alias="splash.jpg">images/splash.jpg</file>
    </qresource>
</RCC>

//.qrc


目录
相关文章
23 QT - 自定义控件
23 QT - 自定义控件
66 0
|
5月前
|
前端开发 程序员 API
【Qt】控件介绍
【Qt】控件介绍
|
5月前
|
API UED
【Qt 学习笔记】Qt窗口 | 状态栏 | QStatusBar的使用及说明
【Qt 学习笔记】Qt窗口 | 状态栏 | QStatusBar的使用及说明
647 4
|
5月前
【qt】自定义对话框(2)
【qt】自定义对话框(2)
38 0
|
5月前
【qt】自定义对话框(1)
【qt】自定义对话框(1)
49 0
QT TextEdit控件 全面详解
本文详细的介绍了TextEdit控件的各种操作,例如:获取内容、输入控件字符、保持在最后一行添加(自动滚屏)、定时关闭、添加数据换行、向鼠标位置插入一行字符、设置字体颜色属性等操作。 本系列QT全面详解文章目前共有十五篇,本系列文章较为详细的讲述了QT控件的基础操作和使用,也谢谢大家的关注、点赞、收藏。
1609 2
QT TextEdit控件 全面详解
21 QT - QLabel控件使用
21 QT - QLabel控件使用
78 0
QT圆形进度条(QT桌面项目光照强度检测)
QT圆形进度条(QT桌面项目光照强度检测)
166 0
|
JavaScript
Qt图片浏览器
可以显示jpg、jpeg、png、bmp。可以从电脑上拖动图到窗口并显示出来或者打开文件选择 重载实现dragEnterEvent(拖拽)、dropEvent(拖拽放下)、resizeEvent(窗口大小改变)
115 0
QT之Qml使用QSystemTrayIcon实现系统托盘
QT之Qml使用QSystemTrayIcon实现系统托盘

热门文章

最新文章

推荐镜像

更多
下一篇
开通oss服务