Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: Marinad от Июнь 03, 2009, 12:07



Название: QSplashScreen
Отправлено: Marinad от Июнь 03, 2009, 12:07
Код:
#include <QtGui>
#include "mainwindow.h"
#include "finddialog.h"

void loadModules(QSplashScreen *psplash)
{
    QTime time;
    time.start();

    for(int i=0;i<100;i++)
    {
        if (time.elapsed()>40)
        {time.start();
            i++;
        }

        psplash->showMessage("Loading modules: "
                             +QString::number(i)+"%",
                             Qt::AlignHCenter | Qt::AlignBottom,
                             Qt::black
                             );
    }
}

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    QSplashScreen splash(QPixmap("res/splash.jpg"));

    splash.show();

    QLabel lbl("<h1><center>MyApp<br>"
               "Is ready!</center></h1>");

    loadModules(&splash);
    splash.finish(&lbl);
    lbl.resize(250,250);
    lbl.show();

    MainWindow w;
    w.show();

    return a.exec();
}

Переписал код с книжки Макса Шелле Qt4 =)
Ожидается, что должна появится заставка с картинкой res/splash.jpg
а на деле перед запуском программы появляется окошко с лейблом.
Как отобразить картинку и закрыть её после запуска прораммы?


Название: Re: QSplashScreen
Отправлено: mugabe от Июнь 03, 2009, 12:20
попробуй после showMessage делать QApplication::processEvents();


Название: Re: QSplashScreen
Отправлено: Marinad от Июнь 03, 2009, 13:19
Никакого результата... =(


Название: Re: QSplashScreen
Отправлено: spectre71 от Июнь 04, 2009, 08:22
1) QSplashScreen splash(QPixmap("res/splash.jpg"));
Если не смог подгрузить "res/splash.jpg", то не откроется(с картинкой)!
2) loadModules(&splash);
Если слишком быстро, то ты не заметишь появление "res/splash.jpg".