1er pas en Qt

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)…​

💻 Travail n° 1 Conversion °C ↔ °F

Ce travail guidé va vous permettre de coder votre 1ère application Qt.

🎯 Travail à faire :

  1. Exécuter Qt Creator

  2. Créer un projet avec les caractéristiques suivantes :

    1. type : “Qt Widgets Applications” (Fichiers  Nouveau fichier ou projet…​  Projets  Applications  Qt Widget Application)

    2. nom : QConvertisseurTemperature

    3. classe de base : QDialog

      class information
  3. 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 travail 01
    IHM
    ihm tree travail 01
    Arborescence des composants graphiques de l’IHM avec leur nom (→ propriété objectName)
  4. Faire un clic droit sur le bouton “Convertir” et choisir l’évènement clicked()

    go to slot
  5. É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
    }
  6. Exécuter le programme pour le tester

  7. 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

  8. Améliorer l’application afin qu’elle permette la conversion dans les 2 sens (°C → °F et °F → °C)

💻 Travail n° 2 Temps de montée en t° d’un ballon d’eau chaude

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 à faire :

Concevoir et coder une application Qt qui permet de calculer et afficher le temps de montée en température d’un ballon d’eau chaude connaissant :

  • sa contenance (en l)

  • sa puissance (en W)

  • sa température de départ (en °C)

  • sa température d’arrivée (en°C)

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.

Le temps de montée en température d’un ballon d’eau chaude — exprimée en secondes et notée Δt — est déterminée par la formule suivante :

duree echauffement eau

avec :

  • m, la masse d’eau contenue dans le ballon (en kg). Elle se calcule grâce au volume du ballon. En notant VBallon ce volume (en m3), on a : m = ρ × VBallon, où ρ est la masse volumique de l’eau (ρ = 1000 kg/m3).

  • CP, la capacité calorifique de l’eau dans le ballon (en J/kg/°C). CP = 4186 J/kg/°C.

  • ΔT, l’élévation de température c’est-à-dire la différence entre la t° d’arrivée et la t° de départ

  • p, la puissance en W du ballon d’eau chaude

🞄  🞄  🞄