- Formations
- conversion_path Parcours & Formations
- science Projets
- data_object Exercices de code
- psychology Exercices IA
- quiz Quiz
- Articles
- rss_feed Blog
- sort_by_alpha Glossaire
- menu_book Guides
- help_center FAQ
- media_link Ressources
- Communauté
- groups La communauté
- forum Questions
- live_tv Mentorats
- science Projets mensuels
- Formations
- conversion_path Parcours & Formations
- science Projets
- data_object Exercices de code
- psychology Exercices IA
- quiz Quiz
- Articles
- rss_feed Blog
- sort_by_alpha Glossaire
- menu_book Guides
- help_center FAQ
- media_link Ressources
- Communauté
- groups La communauté
- forum Questions
- live_tv Mentorats
- science Projets mensuels
Deviens membre Premium magic_button
Débloque cette session en devenant Membre Premium 🚀
Inscris-toi
(c'est gratuit !)
Un compte est nécessaire pour participer aux discussions.
Créer un compte person00:00:00 :On va voir comment on peut organiser un peu mieux notre code en créant une classe qui vareprésenter notre fenêtre. C'est quelque chose que l'on fait régulièrement puisque ce n'est pas
00:00:09 :très efficace d'avoir tout le code au même niveau dans le script donc dans l'espace global de notrescript. Donc ce qu'on va faire c'est enlever ces deux lignes ici, on va garder notre application
00:00:18 :dans l'espace global du script mais on va créer une classe qui va hériter de QWidget et donc danscette classe on va pouvoir créer notre interface, on va également pouvoir créer des méthodes etl'intérêt de faire tout ça avec une classe et avec de l'orienté objet c'est qu'on va pouvoir
00:00:32 :passer des informations d'une méthode à une autre. Puisque dans une application PySide,généralement on va avoir des dizaines voire des centaines de widgets, on va avoir des layouts,des signaux donc on va avoir beaucoup de choses qui vont interagir les unes avec les autres etpour découper tout ça un peu mieux on va créer plein de méthodes à l'intérieur de notre classe
00:00:48 :et ces méthodes elles vont donc pouvoir interagir les unes avec les autres. Ce qui n'est pas le cassi on utilisait des fonctions toutes simples puisqu'à chaque fois qu'on serait dans unefonction on aurait un espace local de définis. Quand on est dans une classe on va pouvoir
00:00:59 :travailler avec une autre instance et passer des informations d'une méthode à une autre.Donc pour l'instant c'est peut-être encore un peu flou, je vais vous montrer comment mettre tout çadans une classe et par la suite vous comprendrez un peu mieux ce que je veux dire par le fait
00:01:10 :qu'on va pouvoir passer des informations d'une méthode à une autre. Donc on le verra quand onaura une application un peu plus complexe. Donc pour l'instant ce qu'on va faire c'est créer
00:01:17 :une classe, je vais l'appeler tout simplement MainWindow et on va la faire hériter de QWidgetpuisque on souhaite avoir accès à toutes les méthodes et attributs de QWidget. Donc ce qu'on
00:01:27 :va faire ensuite c'est la fameuse méthode init qui va nous permettre d'initialiser notre instanceet à l'intérieur de cette méthode on va utiliser la méthode super qui va me permettre d'appeler laméthode init de QWidget dont on hérite. Donc ça c'est de l'orienterObjet, je ne vais pas m'attarder
00:01:41 :trop là dessus puisque c'est vraiment des concepts de l'orienterObjet avec Python. Donc là on n'estpas dans du Qt, c'est vraiment juste un héritage très simple, on hérite de QWidget et on utilisesuper pour aller appeler la méthode init de QWidget dont on hérite. Donc c'est tout ce qu'on a besoin
00:01:55 :de faire ici pour notre classe, on va ensuite créer une instance à partir cette fois-ci denotre classe MainWindow et non plus de QWidget. Donc après la création de mon application ici,
00:02:04 :je vais faire une variable que je vais appeler MainWindow et on va créer une instance à partirde MainWindow. On n'oublie pas d'utiliser la méthode show pour afficher cette fenêtre et
00:02:13 :ensuite le reste c'est la même chose, on a notre application ici, le app.exec à la fin qui mepermet de lancer l'application et donc ici on a juste rajouté une classe. Donc je sauvegarde et
00:02:22 :je relance le script et vous voyez qu'on a bien notre fenêtre comme précédemment. Maintenantce qu'on peut faire c'est par exemple modifier quelques informations sur notre QWidget, donc pourça on va utiliser self, self qui représente notre QWidget dont on hérite et sur QWidget par exempleon a une méthode qui va nous permettre de changer le titre de notre fenêtre. Donc cette méthode c'est
00:02:42 :setWindowTitle, là encore faites attention aux majuscules, on a une majuscule sur le windowet une majuscule sur le title. Donc ici c'est du camel case assez classique, on a la première
00:02:51 :lettre par contre ici qui est en minuscule donc set tout en minuscules et ensuite une lettremajuscule sur chaque mot donc sur window et sur title. Donc ici je vais pouvoir mettre une chaîne
00:03:00 :de caractère dire par exemple ma super application et vous voyez que donc on a accès à cette méthodesetWindowTitle car on hérite de QWidget et donc il y a plein de méthodes comme ça qu'on vapouvoir utiliser pour modifier notre fenêtre. Donc si je relance l'application cette fois-ci
00:03:14 :vous voyez qu'on a bien un titre sur notre fenêtre et on a ma super application qui estindiquée maintenant sur la barre de menu. Donc voilà comment on organise notre script un peu
00:03:23 :mieux avec une classe, ça reste vraiment de l'orienter objet de base donc rien de biencompliqué si vous êtes habitués à l'orienter objet et par la suite vous verrez qu'avec desapplications un peu plus compliquées ça va vraiment permettre d'avoir une bien meilleure organisationde notre code à l'intérieur de notre classe et des différentes méthodes qu'on pourrait créer
Ce n'est pas fini...
✋
Tu as complété % du parcours 🔥
Termine l'intégralité de la formation pour pouvoir débloquer ton attestation de réussite.