您的位置:首页 > 编程语言 > Qt开发

qt启动画面实现

2017-04-04 13:36 489 查看
在程序启动时常由于加载数据或加载库文件会一段时间才弹出主窗口,期间心急或不明所以的用户会以为 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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  qt 启动画面