Cours:InfoS3 POO : Différence entre versions
(→Tps) |
(→séances : C++ sous QT Creator) |
||
Ligne 55 : | Ligne 55 : | ||
*[[Cours:pooTD1_qtcreator|séance 1 (1,5h) : découverte du C++ et de QT Creator]] | *[[Cours:pooTD1_qtcreator|séance 1 (1,5h) : découverte du C++ et de QT Creator]] | ||
− | *[[Cours:pooTD2_classes| | + | *[[Cours:pooTD2_classes|séance 2 (1,5h) : création de classes et manipulation d'objets]] |
− | *[[Cours:interfaceQT| | + | *[[Cours:interfaceQT|séance 3 (1,5h) : 1ère interface graphique]] |
− | *[[Cours:signalSlotQT| | + | *[[Cours:signalSlotQT|séance 4 (1,5h) : classe avec slot et émission de signal]] |
+ | *[[Cours:TPgpioQT|séance 5 (3h) : GPIO]] | ||
*[[Cours:pointeursCpp|TD 5 : manipulation de pointeurs/références]] | *[[Cours:pointeursCpp|TD 5 : manipulation de pointeurs/références]] | ||
*[[Cours:TPheritageIO|TD 6 : Préparation/fin du TP héritage]] | *[[Cours:TPheritageIO|TD 6 : Préparation/fin du TP héritage]] | ||
*[[Cours:HeritageWidgetQT|TD facultatif : spécialisation de Widgets]] | *[[Cours:HeritageWidgetQT|TD facultatif : spécialisation de Widgets]] | ||
+ | |||
+ | |||
+ | *[[Cours:TPgpioControleur|Tp 2 : contrôleur de lampes]] | ||
+ | *[[Cours:TPheritageIO|Tp 3 : on hérite !]] | ||
+ | |||
+ | *[[Cours:TPqtFNS|Tp xx : Machine à état fini]] | ||
=Ressources= | =Ressources= |
Version du 17 septembre 2024 à 13:44
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 (1,5h) : création de classes et manipulation d'objets
- 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
- TD 5 : manipulation de pointeurs/références
- TD 6 : Préparation/fin du TP héritage
- TD facultatif : spécialisation de Widgets
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));