AbulEduExerciceWidgetMessageV1¶
Mise en place¶
Méthodes principales¶
Bouton Fermer¶
L'AbulEduExerciceWidgetMessageV1 comporte un bouton Fermer, afin de pouvoir être utilisée pour afficher des messages à l'utilisateur, comme peut le faire par exemple une QMessageBox.
Une méthode
abeWidgetSetBtnFermerVisible(bool vraiFaux)
permet de choisir s'il est visible ou pas (il est caché par défaut).
Le clic sur le bouton Fermer va cacher le bouton lui-même et l'AbulEduExerciceWidgetMessageV1.
Exemple d'utilisation¶
Une méthode d'AbulEduExerciceV1 permet d'afficher un message d'erreur un exercice est lancé dans un module dans lequel ce type d'exercice n'est pas présent.
Cette méthode affiche un AbulEduExerciceWidgetMessageV1, en précisant qu'on veut que le bouton soit visible :
void AbulEduExerciceV1::displayErrorMissingExercise(QString Exercise) { m_uiAbulEduMessage->abeWidgetMessageSetTitre(trUtf8("Exercice absent du module")); m_uiAbulEduMessage->abeWidgetMessageSetConsigne(trUtf8("Ce module ne contient aucun exercice de type ")+"<i>"+Exercise+"</i>"); m_uiAbulEduMessage->abeWidgetMessageSetZoneTexteVisible(true); m_uiAbulEduMessage->abeWidgetMessageResize(); m_uiAbulEduMessage->abeWidgetMessageSetZoneTexteVisible(false); m_uiAbulEduMessage->move((getAbeExerciceAireDeTravailV1()-> width() + getAbeExerciceTelecommandeV1()->width() - getAbeExerciceMessageV1()->width())/2, ((getAbeExerciceAireDeTravailV1()-> height() - getAbeExerciceMessageV1()->height())/2)); m_uiAbulEduMessage->setVisible(true); m_uiAbulEduMessage->abeWidgetSetBtnFermerVisible(true); }
Dans Aller-5.0, l'examen de la clef exerciceActive d'une section donnée provoque soit le lancement de cette méthode et la fermeture de l'exercice, soit le lancement de l'exercice.
Problème des très grands affichages¶
Quand on veut afficher dans la zone dédiée un texte important, la taille du dessin de fond, même dans sa version "grand", est un problème. C'est le cas en particulier dans Aller quand on choisit d'afficher le texte en début d'exercice. Il est préférable alors de ne pas afficher l'image de fond. Ajoutez dans votre code
getAbeExerciceMessageV1()->abeWidgetMessageHasImageFond(false);
pour les cas où vous ne voulez pas d'image de fond, il n'y aura plus d'image de fond mais seulement un background-color de la couleur du parchemin d'Aller (#F8FCF4).
Vous aurez en principe besoin d'évaluer le cas où cette image présente ou pas (placement de la consigne sur l'Aire de Jeu). On y accède en testant
if (getAbeExerciceMessageV1()->abeWidgetMessageGetHasImageFond()) {