Projet

Général

Profil

AbulEduAproposV1

Installation

L'installation de la classe AbulEduAproposV1 se fait dans le dossier lib de votre logiciel, par exemple

git submodule add http://redmine.abuledu.org/ryxeo/leterrier-developpeurs/abuleduaproposv1.git src/lib/abuleduaproposv1

Mainteneur de la lib:

git clone ssh://gitolite3@redmine.abuledu.org/repositories-redmine/ryxeo/leterrier-developpeurs/abuleduaproposv1.git

Description

  • Page AbulEduAproposV1
    Elle contient des onglets destinés à afficher les informations
    • Onglet Présentation : une présentation générale du logiciel, avec les objectifs et les principales fonctionnalités,
    • Onglet Aide intégrée : le descriptif sommaire d'accès à ces fonctionnalités,
    • Onglet Ressources : un lien vers des ressources, idées d'utilisation, descriptifs de mise en oeuvre, activités associées, et ...,
    • Onglet Nouveautés : téléchargement d'actualités publiées dans les nouveautés du projet sur Redmine,
    • Onglet Contributions : une page invitant les utilisateurs à contribuer,
    • Onglet À propos : des informations techniques sur la version du logiciel.
  • Menu Aide
    Il s'installe dans la barre de menu du logiciel à l'appel dans la MainWindow de l'application de la fonction
    ui->monWidgetApropos->abeAproposSetMainWindow(this);
    

    monWidgetApropos est le widget promu en AbulEduAproposV1

Personnalisation

Principe général

Vous pouvez devez personnaliser cette boîte à propos, c'est à dire écrire les pages qui sont particulières à votre logiciel, et qui correspondent aux onglets Présentation, Aide intégrée et À propos. Il suffit d'ajouter dans votre dossier data un dossier abuleduaproposv1 contenant un fichier de ressource abuleduaproposv1.qrc, et trois fichiers presentation_fr.html, help_fr.html et about_fr.html, les trois étant des copies adaptées du contenu du dossier lib/abuleduaproposv1. Ce dossier sera prioritaire sur celui de la lib.

Les fichiers .html

Ce modèle est destiné à évoluer parce qu'il pose des problèmes, en particulier de traduction.
Pour Imageo, première application utilisant la nouvelle version de la lib, j'ai utilisé les QTextBrowser de l'interface graphique, créant mes textes tels que je voulais qu'ils apparaissent dans leur onglet Texte riche et copiant le contenu de leur onglet Source dans mes fichiers presentation_fr.html, help_fr.html et about_fr.html.

L'apparence

L'apparence "usine" est très grisouille. Vous pouvez néanmoins sur le même principe que pour le menu Feuille, le menu graphique, la page d'accueil, etc... le personnaliser en copiant un dossier abuleduaproposv1 dans le dossier data de votre application et en modifiant les valeurs, ou même en en ajoutant pour peu qu'elles apportent des propriétés css qui existent pour le fond (section AbulEduAproposV1) et la boite à onglets (section tabWidget) ou des propriétés (tout court) qui existent pour le bouton
exemple pour Fubuki

[AbulEduAproposV1]
background-color=#eed9be;

[tabWidget]
QTabWidget\pane\border-top=2px solid #cb6a59;
QTabWidget\pane\background-color=#eed9be
QTabBar\tab\background-color=transparent
QTabBar\tab:selected\background-color=#cb6a59
QTabBar\tab:selected\border-color: #9B9B9B;
QTabBar\tab:selected\border-bottom-color: #cb6a59;
QTabBar\tab:hover\background-color=#cb6a59
QTabBar\tab:hover\background-color=
QTabBar\tab:!selected\background-color=

[btnAproposClose]
CouleurFondNormale=#cb6a59
CouleurFondSurvol=#fd9729
CouleurFondPressed=#fd9729
CouleurTexteNormale=#fd9729
CouleurTexteSurvol=#cb6a59
CouleurTextePressed=#cb6a59
BorderRadius=6
minimumHeight=40

Inutile de supprimer les entrées vides, elles sont ignorées.

Utilisation

Dans le QStackedWidget que contient probablement l'interface graphique principale de votre application, insérez une page (QWidget) que vous appellerez par souci de cohérence pageAbout, puis promouvez-le en AbulEduAproposV1;
  • Si vous êtes dans une application qui a une MainWindow et dont la barre de menu n'est pas cachée, installez le menu Aide dans le constructeur de la MainWindow après le ui->setupUi(this);,
    ui->pageAbout->abeAproposSetMainWindow(this);
    

    et connectez les signaux de l'AbulEduAproposV1 :
    connect(ui->pageAbout, SIGNAL(signalAbeAproposSetindex(int)),m_abuleduaccueil->abePageAccueilGetMenu(), SIGNAL(btnAideTriggered()), Qt::UniqueConnection);
    

    pour que le clic sur le bouton Aide de l'AbulEduGraphicsMenuV1 affiche votre boite à propos et
    connect(ui->pageAbout, SIGNAL(signalAbeAproposBtnCloseClicked()),this, SLOT(showMainPage()),Qt::UniqueConnection);
    

    où slotShowMainPage() vous fera revenir à votre page d'accueil.
  • Si vous êtes dans une application qui utilise AbulEduMenuFeuilleV1, vous devez programmer l'appel de votre boite à propos
    void MainWindow::on_abeMenuFeuilleBtnHelp_clicked()
    {
        ui->stackedWidget->setCurrentWidget(ui->pageAbout);
    }
    

    et connecter le bouton Fermer de votre AbulEduAproposV1
    connect(ui->pageAbout, SIGNAL(signalAbeAproposBtnCloseClicked()),this, SLOT(showMainPage()),Qt::UniqueConnection);
    

    où slotShowMainPage() vous fera revenir à votre page d'accueil.
Redmine Appliance - Powered by TurnKey Linux