Cours:InfoS3 POO : Différence entre versions
(→Pour aller plus loin) |
|||
(111 révisions intermédiaires par 2 utilisateurs non affichées) | |||
Ligne 1 : | Ligne 1 : | ||
− | = | + | = Pratique = |
+ | * Pour installer QT Creator (ainsi que C++ et Qt) sous de nombreux OS : suivre ce tutoriel | ||
+ | https://guillaumebelz.github.io/qtinstall/ | ||
+ | * Guide d'installation de Qt par Geoffrey Lecoq (merci à lui) : [[Fichier:GuideQT_Lecoq.pdf]] | ||
− | = | + | = Évaluations = |
− | + | *[[Cours:DevoirPOOcpp2|Évaluation n°1]] | |
− | + | <!--*[[Cours:DevoirPOO1|Évaluation n°1]]--> | |
+ | *[[Cours:DevoirPOO2Ressources|Évaluation n°2 ressources]] | ||
+ | *[[Cours:DevoirPOO2|Évaluation n°2 sujet]] | ||
− | + | *[[Cours:DevoirMaisonPOO1|Devoir maison n°1]] | |
− | = | + | = Cours magistral = |
+ | == Diapositives et support de cours == | ||
+ | |||
+ | * Diapositives de la partie Introduction : [[Media:POOintro.pdf]] | ||
+ | * Diapositives de la partie Notions : [[Media:POOnotions.pdf]] | ||
+ | * Diapositives de la partie Approfondissements : [[Media:POOapprofondissements.pdf]] | ||
+ | * Support de cours imprimable : [[Media:POOsupport.pdf]] | ||
+ | |||
+ | == Projets de démonstration de CM == | ||
+ | |||
+ | * Projet <code>minimal</code> : [[Media:minimal.zip]] | ||
+ | * Projet <code>simpleNonOOCar</code> : [[Media:simpleNonOOCar.zip]] | ||
+ | * Projet <code>simpleOOCar</code> : [[Media:simpleOOCar.zip]] | ||
+ | * Projet <code>twoOOCars</code> : [[Media:twoOOCars.zip]] | ||
+ | * Projet <code>formes_start</code> : [[Media:formes_start.zip]] | ||
+ | * Projet <code>formes</code> : [[Media:formes.zip]] | ||
+ | * Projet <code>formes_nonpolymorphes</code> [[Media:formes_nonpolymorphes.zip]] | ||
+ | * Projet <code>formes_polymorphes</code> [[Media:formes_polymorphes.zip]] | ||
+ | |||
+ | == Lecture externes potentiellement utiles == | ||
+ | |||
+ | '''Cours de POO d'openclassrooms''' : | ||
+ | |||
+ | 1. [https://openclassrooms.com/fr/courses/7137751-programmez-en-oriente-objet-avec-c/7673331-decouvrez-la-notion-de-poo Découvrez La notion de programmation orientée objet (POO)] | ||
+ | |||
+ | 2. [https://openclassrooms.com/fr/courses/7137751-programmez-en-oriente-objet-avec-c Programmez en orienté objet avec C++] | ||
+ | |||
+ | '''Les pointeurs et leur utilisation avec des objets''' : | ||
+ | |||
+ | 1. [https://openclassrooms.com/fr/courses/1894236-apprenez-a-programmer-en-c/7534366-declarez-les-pointeurs Déclarez les pointeurs] | ||
+ | |||
+ | 2. [https://openclassrooms.com/fr/courses/7137751-programmez-en-oriente-objet-avec-c/7531356-associez-les-classes-et-les-pointeurs Associez les classes et les pointeurs] | ||
+ | |||
+ | <!-- [[media:POO-Support.pdf|Support de cours en pdf (à télécharger)]] | ||
+ | --> | ||
+ | |||
+ | = Séances : C++ sous QT Creator = | ||
+ | |||
+ | *[[Cours:pooTD1_qtcreator|séance 1 (1,5h) : découverte du C++ et de QT Creator]] | ||
+ | *[[Cours:pooTD2_classes|séance 2 (3h) : création de classes et manipulation d'objets]] | ||
+ | *{{Rouge|Evaluation (1,5h)}} | ||
+ | *[[Cours:interfaceQT|séance 3 (1,5h) : 1ère interface graphique]] | ||
+ | *[[Cours:signalSlotQT|séance 4 (1,5h) : classe avec slot et émission de signal]] | ||
+ | *[[Cours:TPgpioQT|séance 5 (3h) : GPIO (pi4) ]] | ||
+ | *[[Cours:TPheritageIO|séance 6 (4,5h): on hérite ! (pi4)]] | ||
+ | *[[Cours:HeritageWidgetQT|séance 7 (1,5h) : spécialisation de Widgets]] | ||
+ | *[[Cours:TPqtFNS|séance 8 (3h) : Machine à état fini ("pi4") ]] | ||
+ | *[[Cours:pointeursCpp|séance 9 (1,5h) : manipulation de pointeurs/références]] | ||
+ | *[[Cours:qtTCP|séance 10 (1,5h) : Révisions ou communication entre 2 cartes par TCP]] | ||
+ | |||
+ | |||
+ | *{{Rouge|Evaluation (3h) (pi4)}} | ||
+ | |||
+ | =Pour aller plus loin= | ||
+ | *[[Cours:diyWidgetQT|Créer son widget]] | ||
+ | *[[Cours:TPgpioControleur|Tp 2 : contrôleur de lampes]] | ||
+ | *[[Cours:gitQtCreator|Utilisation de git avec qt creator]] | ||
+ | |||
+ | =Ressources= | ||
+ | *https://www.kdab.com/wp-content/uploads/stories/slides/DD13/dd13_signalsslots.pdf | ||
+ | |||
+ | =Logiciel= | ||
+ | ==Vm Qt Creator== | ||
+ | |||
+ | Vous pouvez utiliser l'image VirtualBox suivante sur laquelle QtCreator est installé | ||
+ | |||
+ | https://drive.google.com/file/d/1BdVNnAtpYM14ztf215gBVx5b2P8iAAix/view?usp=sharing | ||
+ | |||
+ | |||
+ | Le mot de passe est geii | ||
+ | |||
+ | ==Simulation de gpio== | ||
+ | |||
+ | *simulateur leds/bp/interrupteur | ||
+ | **dans la machine virtuelle VirtualBox | ||
+ | **au besoin supprimer le fichier GpioSimulateur.zip dans le répertoire "Téléchargements" | ||
+ | **télécharger [[Media:GpioSimulateur.zip]] dans le répertoire "Téléchargements" | ||
+ | **lancer un "émulateur de Terminal", taper les commandes : | ||
+ | <source lang=bash> | ||
+ | cd ~/Téléchargements/ | ||
+ | rm gpioSimulateur | ||
+ | unzip GpioSimulateur.zip | ||
+ | chmod +x gpioSimulateur | ||
+ | ./gpioSimulateur | ||
+ | </source> | ||
=Vrac= | =Vrac= | ||
+ | |||
+ | ==[[Cours:POONomenclature|Nomenclature diagramme objet]]== | ||
+ | |||
+ | ==Autres pages wiki utiles== | ||
+ | *[[Cours:modulesGrove]] | ||
*[[Cours:rpi]] | *[[Cours:rpi]] | ||
*[[Cours:pooQT]] | *[[Cours:pooQT]] | ||
*[[Cours:QT]] | *[[Cours:QT]] | ||
+ | *[[Cours:infoS3_POO_archives]] | ||
+ | |||
+ | =Cas particuliers= | ||
+ | |||
+ | ==surcharge et signaux/slots== | ||
+ | |||
+ | Il faudra indiquer au compilateur le type des paramètres pour faire le choix du bon signal et/ou slot : | ||
+ | |||
+ | <source lang=cpp> | ||
+ | connect(ui->doubleSpinBox,QOverload<double>::of(&QDoubleSpinBox::valueChanged), | ||
+ | this,&MainWindow::afficheDouble); | ||
+ | connect(ui->doubleSpinBox,QOverload<double>::of(&QDoubleSpinBox::valueChanged), | ||
+ | this,QOverload<double>::of(&MainWindow::affiche)); | ||
+ | connect(ui->doubleSpinBox,QOverload<const QString &>::of(&QDoubleSpinBox::valueChanged), | ||
+ | this,QOverload<const QString &>::of(&MainWindow::affiche)); | ||
+ | </source> |
Version actuelle datée du 13 octobre 2024 à 16:15
Sommaire
Pratique
- Pour installer QT Creator (ainsi que C++ et Qt) sous de nombreux OS : suivre ce tutoriel
https://guillaumebelz.github.io/qtinstall/
- Guide d'installation de Qt par Geoffrey Lecoq (merci à lui) : Fichier:GuideQT Lecoq.pdf
Évaluations
Cours magistral
Diapositives et support de cours
- Diapositives de la partie Introduction : Media:POOintro.pdf
- Diapositives de la partie Notions : Media:POOnotions.pdf
- Diapositives de la partie Approfondissements : Media:POOapprofondissements.pdf
- Support de cours imprimable : Media:POOsupport.pdf
Projets de démonstration de CM
- Projet
minimal
: Media:minimal.zip - Projet
simpleNonOOCar
: Media:simpleNonOOCar.zip - Projet
simpleOOCar
: Media:simpleOOCar.zip - Projet
twoOOCars
: Media:twoOOCars.zip - Projet
formes_start
: Media:formes_start.zip - Projet
formes
: Media:formes.zip - Projet
formes_nonpolymorphes
Media:formes_nonpolymorphes.zip - Projet
formes_polymorphes
Media:formes_polymorphes.zip
Lecture externes potentiellement utiles
Cours de POO d'openclassrooms :
1. Découvrez La notion de programmation orientée objet (POO)
2. Programmez en orienté objet avec C++
Les pointeurs et leur utilisation avec des objets :
2. Associez les classes et les pointeurs
Séances : C++ sous QT Creator
- séance 1 (1,5h) : découverte du C++ et de QT Creator
- séance 2 (3h) : création de classes et manipulation d'objets
- Evaluation (1,5h)
- séance 3 (1,5h) : 1ère interface graphique
- séance 4 (1,5h) : classe avec slot et émission de signal
- séance 5 (3h) : GPIO (pi4)
- séance 6 (4,5h): on hérite ! (pi4)
- séance 7 (1,5h) : spécialisation de Widgets
- séance 8 (3h) : Machine à état fini ("pi4")
- séance 9 (1,5h) : manipulation de pointeurs/références
- séance 10 (1,5h) : Révisions ou communication entre 2 cartes par TCP
- Evaluation (3h) (pi4)
Pour aller plus loin
Ressources
Logiciel
Vm Qt Creator
Vous pouvez utiliser l'image VirtualBox suivante sur laquelle QtCreator est installé
https://drive.google.com/file/d/1BdVNnAtpYM14ztf215gBVx5b2P8iAAix/view?usp=sharing
Le mot de passe est geii
Simulation de gpio
- simulateur leds/bp/interrupteur
- dans la machine virtuelle VirtualBox
- au besoin supprimer le fichier GpioSimulateur.zip dans le répertoire "Téléchargements"
- télécharger Media:GpioSimulateur.zip dans le répertoire "Téléchargements"
- lancer un "émulateur de Terminal", taper les commandes :
cd ~/Téléchargements/
rm gpioSimulateur
unzip GpioSimulateur.zip
chmod +x gpioSimulateur
./gpioSimulateur
Vrac
Nomenclature diagramme objet
Autres pages wiki utiles
Cas particuliers
surcharge et signaux/slots
Il faudra indiquer au compilateur le type des paramètres pour faire le choix du bon signal et/ou slot :
connect(ui->doubleSpinBox,QOverload<double>::of(&QDoubleSpinBox::valueChanged),
this,&MainWindow::afficheDouble);
connect(ui->doubleSpinBox,QOverload<double>::of(&QDoubleSpinBox::valueChanged),
this,QOverload<double>::of(&MainWindow::affiche));
connect(ui->doubleSpinBox,QOverload<const QString &>::of(&QDoubleSpinBox::valueChanged),
this,QOverload<const QString &>::of(&MainWindow::affiche));