AbulEduSplashScreenV0¶
Installation¶
L'installation de la classe AbulEduSplashScreenV0 se fait dans le dossier lib de votre logiciel, par exemple
git submodule add http://redmine.abuledu.org/ryxeo/leterrier-developpeurs/abuledusplashscreenv0.git src/lib/abuledusplashscreenv0
Mainteneur de la lib:
git clone ssh://gitolite3@redmine.abuledu.org/repositories-redmine/ryxeo/leterrier-developpeurs/abuledusplashscreenv0.git
Modification du fichier .pro¶
Pensez à modifier votre fichier .pro pour ajouter cette nouvelle lib
#AbulEduSplashScreenV0 include(lib/abuledusplashscreenv0/abuledusplashscreenv0.pri)
Utilisation¶
Tout se passe dans le fichier main.cpp¶
.../...
#include "abuledusplashscreenv0.h"
#include "abuleduapplicationv1.h"
.../...
int main(int argc, char *argv[])
{
AbulEduApplicationV1 a(argc, argv,VER_INTERNALNAME_STR, VER_PRODUCTVERSION_STR);
a.setAbeApplicationLongName(QObject::trUtf8(VER_FILEDESCRIPTION_STR));
a.setOrganizationDomain(VER_COMPANYDOMAIN_STR);
a.setOrganizationName("leterrier");
QString locale = QLocale::system().name().section('_', 0, 0);
QTranslator translator;
translator.load("Imageo_"+locale, "./conf/lang");
a.installTranslator(&translator);
MainWindow *w;
QPixmap pixmap("data/splash-imageo.png"); //Ou n'importe quel PNG ayant un canal alpha
AbulEduSplashScreenV0 *splash = new AbulEduSplashScreenV0(pixmap);
splash->show();
for (int i = 1; i <= 5; i++)
{
//en attendant de savoir quand
//On lance le constructeur de la mainwindows en "arrière plan" -> network request etc. c cool
if(i == 1) {
w = new MainWindow(0);
}
splash->showMessage(QObject::trUtf8("Chargement en cours, merci de patienter ... %1%").arg(QString::number(i*20)), Qt::AlignBottom | Qt::AlignHCenter, Qt::black);
//tres important si vous voulez que le splash s'affiche !
qApp->processEvents();
AbulEduSleeperThread::msleep(1000);
}
splash->deleteLater();
w->showMaximized();
Cette lib devrait nous permettre de créer des splashscreen au lancement des logiciels, mais je suis pour l'instant stoppé par un bug sous linux lorsque compiz n'est pas activé:
Sous linux avec compiz (effets "spéciaux"):
Sous linux sans compiz (effets "spéciaux"):
Sous windows, pas de problème apparemment: