Activité Dans cette activité vous allez utiliser l’environnement de développement intégré (ou EDI ou IDE en anglais) nommé Qt Creator pour créer des applications graphiques. Vous serez amenés à l’utiliser fréquemment pour tout ce qui concerne la programmation en langage C ou C++ aussi bien sur PC que sur Raspberry Pi. Cet IDE a été conçu spécialement pour développer des programmes C++ avec le framework Qt qui est un ensemble de librairies qui permettent — entre autres — de développer des application graphiques, d’accéder par programme à des bases de données ou au réseau, de dessiner sur l’écran (2D ou 3D)… 1ère application “Qt Widget” 🖮 Travail n° 1 Conversion °C ↔ °F Booter le PC sur OpenSUSE Exécuter Qt Creator Créer un projet avec les caractéristiques suivantes : type : “Qt Widgets Applications” (Fichiers Nouveau fichier ou projet… Projets Applications Qt Widget Application) nom : QConvertisseurTemperature classe de base : QDialog Reproduire l’IHM (Interface Homme Machine) ci-dessous dans l’espace de travail qui s’ouvre lorsqu’on double-clique sur le fichier maingui.ui. Le type et le nom à donner à chacun des composants figure dans l’arborescence reproduite sous l’IHM IHM Arborescence des composants graphiques de l’IHM avec leur nom (→ propriété objectName) Faire un clic droit sur le bouton “Convertir” et choisir l’évènement clicked() Étudier le code ci-dessous et le reproduire dans la méthode void MainGUI::on_btnConvert_clicked() { … } qui s’affiche dans l’éditeur de texte de Qt Creator suite à l’action précédente void MainGUI::on_btnConvert_clicked() { double tC; // température exprimée en °C et à convertir double tF; // résultat de la conversion en °F bool isOK; // booléen utilisé pour indiquer si la conversion "chaine -> nombre" a réussi // Lire dans la variable `tC` la valeur saisie dans le champ de la température en °C [->text()] // et tenter de la convertir en nombre [.toDouble(&isOK)] tC = ui->ledtFromValue->text().toDouble(&isOK); // SI la conversion a échoué ALORS if( !isOK) { // Afficher un message d'erreur // (nécessite un `#include <QMessageBox>` en début de fichier) QMessageBox::critical(this , tr("Erreur de saisie") , tr("La valeur saisie pour la température\n" "n'est pas valide" ) , QMessageBox::Ok ); // Effacer le contenu des 2 champs de saisie ui->ledtFromValue->clear(); ui->ledtToValue->clear(); // SINON } else { // Convertir la température °C en température °F tF = tC * (9/5) + 32; // Afficher le résultat de conversion [->setText(...)] // après l'avoir mis sous forme de chaine de caractères [QString::number(tF)] ui->ledtToValue->setText(QString::number(tF)); } // FINSI } Exécuter le programme pour le tester À partir de ce que vous venez de réaliser, faire évoluer le code source du programme de manière à effacer le contenu des 2 champs de saisie lorsqu’on clique sur le bouton “Effacer” de l’IHM Challenge On vous demande ici de coder par vous-même une application “Qt Widget”. Ceci comprend : le design de l’IHM la programmation C++ du code associé à cette IHM 🖮 Travail n° 2 Temps de montée en t° d’un ballon d’eau chaude À partir du code C déjà produit dans l’activité “Faire des calculs en langage C”, concevoir et coder une application graphique qui permet de calculer et afficher le temps de montée en t° d’un ballon d’eau chaude connaissant : sa t° de départ sa t° d’arrivée sa contenance en litres sa puissance en watts Toutes ces informations seront à saisir dans un Input Widget de votre choix (→ Line Edit, Spin Box, Horizontal Slider …) La durée calculée devra être exprimée en heures, minutes, secondes 🞄 🞄 🞄 🎯 Fiche de séquence 🎯 Fiche de séquence