AbulEduApplicationV1¶
L'utilisation de abuleduapplicationv1 permet d'automatiser les différentes choses suivantes:- spécifier le "nom long" des applications à l'aide de setAbeApplicationLongName
- vérifier si une nouvelle version du logiciel est disponible en téléchargement
- centraliser un connecteur réseau (QNetworkAccessManager) et les détections de proxy et autres authentifications
- charger des éventuels plugins
- stocker la valeur du ratio de mise à l'échelle des objets graphiques
- ... et plus encore dès que vous nous donnez des idées :D
Installation¶
L'installation de la classe abuleduapplicationv1 se fait dans le dossier lib de votre logiciel, par exemple
git submodule add http://redmine.abuledu.org/ryxeo/leterrier-developpeurs/abuleduapplicationv1.git src/lib/abuleduapplicationv1
Mainteneur de la lib:
git clone ssh://gitolite3@redmine.abuledu.org/repositories-redmine/ryxeo/leterrier-developpeurs/abuleduapplicationv1.git
Modification du fichier.pro¶
Pensez à modifier votre fichier .pro pour ajouter cette nouvelle lib
#AbulEduApplicationV1 include(lib/abuleduapplicationv1/abuleduapplicationv1.pri)
Utilisation¶
L'utilisation est très simple, dans le main.cpp au lieu d'utiliser une QApplication on utilise alors une AbulEduApplicationV1:
#include "abuleduapplicationv1.h"
#include "mainwindow.h"
int main(int argc, char *argv[])
{
AbulEduApplicationV1 a(argc, argv,"leterrier-demo","0.9.15","abuledu.org","leterrier");
a.setAbeApplicationLongName(QObject::trUtf8("AbulÉdu LeTerrier -- Logiciel de démonstration"));
MainWindow w;
w.show();
return a.exec();
}
Mise à l'échelle des objets graphiques¶
Pour que tous les objets graphiques restent d'une taille cohérente les uns par rapport aux autres, nous avons besoins de stocker et partager le facteur de mise à l'échelle.
- setAbeApplicationDecorRatio(float);
Permet de stocker la valeur du ratio, à priori c'est AbulEduPageAccueilV1 qui s'en charge;
- float getAbeApplicationDecorRatio();
Permet de récupérer le ratio et d'en déduire la bonne taille des objets graphiques à afficher;
Réutilisation du gestionnaire réseau¶
- dans le fichier .h de votre classe, ajoutez un pointeur vers un QNetworkAccessManager
QNetworkAccessManager *m_nam;
- dans le fichier .cpp faites le pointer sur le QNetworkAccessManager de l'abuleduapplication
m_nam = abeApp->getAbeNetworkAccessManager();
et c'est tout, vous bénéficiez comme ça de la configuration automatique qui est développée (et factorisée) dans abuleduapplicationv1.
Application unique¶
Si vous ne voulez pas que l'utilisateur puisse lancer plusieurs instances de votre application, il faut modifier votre main.cpp
if (a.isRunning()) { return 0; }
Astuces¶
- Affichage des messages d'erreurs qDebug quand vous passez en release
- Affecter une icone pour avoir une icône et les propriétés du fichier .exe (version éditeur etc.)
Dépendances¶
Cette classe dépend de