- 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 personIntroduction :
- Dans cette vidéo, on voit comment créer une application à l'aide de PySide 6 en utilisant seulement 5 lignes de code.
- Cette première étape ne contiendra qu'une fenêtre vide, mais permettra d'ajouter des éléments par la suite.
Principes de base :
- On ne peut avoir qu'une seule application avec PySide, mais il est possible d'avoir plusieurs fenêtres dans cette application.
Codage :
- Pour commencer, il est nécessaire d'importer les bonnes classes depuis
PySide 6.QtWidgets
en respectant les majuscules. - Les classes principales sont
QApplication
(pour créer l'application) etQWidget
(base pour tous les widgets et pour créer une fenêtre). - Ensuite, des instances de ces classes sont créées : une pour l'application (souvent nommée
app
) et une pour la fenêtre (exemple :win
). - La méthode
show
est utilisée pour afficher la fenêtre, car par défaut, elle est cachée. - Pour exécuter l'application, on utilise la méthode
exec
.
Détails techniques :
- Il y avait des différences entre Python 2 et 3 quant à la méthode
exec
. Avec PySide 6 et Python 3, on peut utiliserexec
directement. - Pour lancer l'application, l'utilisateur doit utiliser une commande dans le terminal après avoir configuré son environnement virtuel.
Fonctionnalités additionnelles :
- Il est possible d'afficher d'autres types de widgets, comme un bouton (
QPushButton
). - Chaque widget peut être affiché comme une fenêtre et plusieurs fenêtres peuvent être créées et affichées dans une seule application.
- Le module
sys
(mentionné comme "6" dans la transcription) permet de passer des arguments àQApplication
pour, par exemple, définir le style de l'application.
Conseils et astuces :
- Dans les versions précédentes de PySide, il était nécessaire de passer une liste d'arguments lors de la création d'une instance de
QApplication
. Avec PySide 6, cette étape n'est plus nécessaire, mais elle peut toujours être utile dans certaines situations.
Code montré dans la vidéo
from PySide6 import QtWidgets
app = QtWidgets.QApplication()
win = QtWidgets.QWidget()
win.show()
app.exec()
Exemple avec les styles (lancer dans le terminal avec python main.py -style Windows
).
from PySide6 import QtWidgets
import sys
app = QtWidgets.QApplication(sys.argv)
win = QtWidgets.QWidget()
layout = QtWidgets.QHBoxLayout(win)
btn = QtWidgets.QPushButton("Click Me!")
layout.addWidget(btn)
win.show()
app.exec()
00:00:00 :Dans cette vidéo, on va voir comment on peut créer notre première application avec PySide 6.Vous allez voir qu'avec seulement 5 lignes de code, on va pouvoir créer l'application et créer une fenêtrequi, pour l'instant, ne contiendra rien mais qui, par la suite, nous permettra d'ajouter des élémentset de créer ainsi notre application.
00:00:17 :Alors, il faut savoir qu'avec PySide, on ne peut avoir qu'une seule applicationmais on peut avoir, par la suite, plusieurs fenêtres, bien entendu, dans cette application.
00:00:25 :La première chose qu'on va faire, c'est importer depuis PySide 6.QtWidgets,donc faites bien attention ici à toutes les majuscules.On a PySide, donc ici avec la majuscule sur le P, la majuscule sur le Set ici sur QtWidgets, on a une majuscule sur le Q et une majuscule sur le W.
00:00:43 :Donc c'est bien Qt ici avec Q majuscule et Widgets avec le W majuscule.Donc depuis ce module PySide 6.QtWidgets, on va importer les deux classes qui nous intéressent,
00:00:54 :à savoir QApplication et QWidget.Donc QApplication, c'est une classe qui va nous permettre de créer notre applicationet QWidget, c'est la classe dont héritent tous les widgetset c'est également une classe qui nous permet de créer une fenêtre.
00:01:08 :On va donc créer une application à partir de la classe QApplication.Donc pour ça, on va créer une variable que j'appelle généralement appet on va créer une instance de QApplication.
00:01:18 :Donc on met les parenthèses après le nom de la classe.On va faire pareil avec QWidget.Donc je vais créer une variable que je vais appeler winet on va créer une instance de QWidget.
00:01:27 :Donc là, bien entendu, le nom des variables n'a pas d'importance.On pourrait mettre n'importe quoi.On pourrait mettre autre chose que app et autre chose que winet ça marcherait de la même façon.
00:01:35 :Ce qui est bien important ici, c'est de créer une instance de QApplicationet une instance de QWidget.Ensuite, on va afficher cette fenêtre.Pour ça, on va utiliser la méthode show sur notre instance,donc sur notre variable winet on utilise donc la méthode show pour afficher la fenêtre
00:01:50 :puisque par défaut, elle n'est pas affichéeet donc si on lance notre application, elle ne sera pas affichée à l'écran.Et pour finir, on va exécuter notre application.
00:01:58 :Donc ça, c'est la dernière chose qu'on doit faire avec la méthode exec.Vous voyez que j'ai l'autocomplétion qui me propose deux méthodes ici.Auparavant, on avait un mot-clé exec qui était réservé avec Python 2.
00:02:09 :Ce n'est plus le cas avec Python 3.Donc avec Python 2, on était obligé d'utiliser cette méthode execavec un tiré du bas qui permettait de la différencier du mot réservé avec Python.
00:02:18 :Et avec Python 3 et donc PySide 6,on peut utiliser à la place cette méthode exec.Donc les deux vont fonctionner.On a encore cette méthode qui est disponible.
00:02:26 :Mais comme on utilise ici Python 3 et PySide 6,on peut utiliser la méthode exec directement sans le tiré du bas.Donc je sauvegarde et je vais lancer mon application.
00:02:34 :Pour ça, dans un terminal,en m'assurant de bien sourcer mon environnement virtuel au préalable,je vais utiliser la commande Python et lancer mon script directement,donc le script main.py.
00:02:45 :Et on va avoir notre fenêtre qui s'affiche.Vous voyez ici que dans mon terminal, je suis en suspens.Donc tant que je ne ferme pas la fenêtre, je vais avoir cette application qui roule.
00:02:53 :Et si je clique sur la croix ici pour fermer la fenêtre,on revient au niveau du terminal et le processus est arrêté.Donc ça, c'est vraiment notre application.
00:03:00 :Tant qu'on a notre script qui roule,notre application va fonctionner et va attendre qu'on réagisse avec des événements.Par exemple, qu'on clique sur des boutons, qu'on déplace la fenêtre.
00:03:09 :Et notre application Qt va réagir à ces événements.Donc pour l'instant, on n'a pas grand chose à part la possibilité, par exemple,de déplacer la fenêtre ou de la réduire ou de la fermer.
00:03:18 :Donc là, moi, si je la ferme, ça va fermer cette applicationet on va arrêter l'exécution du script.Donc ça, c'est vraiment les éléments de base dont vous avez besoinpour créer une application et une fenêtre avec PySite.
00:03:29 :On peut utiliser d'autres types de widgets que l'on souhaite afficher.Par exemple, si on souhaite afficher un bouton,on peut importer à la place de QWidget, QPushButton.
00:03:38 :Et QPushButton hérite de QWidget.Et donc, on va pouvoir l'afficher en tant que fenêtre.Ça ne sert pas à grand chose, mais je vais vous montrer pour l'exemple.
00:03:45 :Je vais mettre un texte également à l'intérieur du bouton.Je vais mettre pour l'instant juste ClickMe, qu'on ait quelque chose d'affiché.Et si je relance le script, vous voyez qu'on a bien cette fois-ci une fenêtrequi contient un seul élément, donc ce bouton ici, ClickMe, sur lequel on peut cliquer.
00:03:58 :Ça n'a pas vraiment d'intérêt, mais c'est juste pour vous montrer que ces widgets,on peut donc les créer et les afficher de la même façon.
00:04:04 :On pourrait également afficher sans problème plusieurs fenêtres.Donc si je reviens avec mon QWidget, je pourrais créer ici plusieurs QWidget,donc plusieurs instances à partir de la classe QWidget.
00:04:14 :Par exemple, en faisant une variable win1 et en faisant une autre variable win2,je pourrais ainsi créer et afficher deux fenêtres dans mon application.Donc là encore, bien important de comprendre que vous ne pouvez avoir qu'une seule QApplication ici,mais vous pouvez avoir autant de fenêtres et de widgets à l'intérieur de cette application.
00:04:32 :Donc là, avec deux widgets, ça va fonctionner également.Je relance le script et vous voyez qu'on a bien ici les deux fenêtres qui s'affichentet qui correspondent aux deux fenêtres que j'ai créées ici à l'intérieur de cette même QApplication.
00:04:43 :Il est probable que dans certains scripts, vous voyez ce module qui soit utilisé, le module 6,avec cet argument qui est passé, donc 6.argv.Ça en fait, c'est une façon de faire qui permet de passer les arguments que l'on passequand on appelle notre application ici dans le terminal à notre QApplication.
00:04:58 :Donc dans quel cas est-ce que ça peut être utile ?Par exemple, si on souhaite spécifier le style de notre application au moment où on la lance.
00:05:05 :Quand on fait python main.py ici, on peut en effet spécifier le flag-style ici et passer différents styles.Donc par exemple, on pourrait passer le style Windows et vous allez voir si je lance l'applicationque là, le style du bouton est un peu différent.
00:05:18 :Donc ce n'est pas forcément très visible, mais on a des bords un peu plus rectangulaires.Il y a plusieurs styles comme ça qui sont disponibles.
00:05:24 :On a par exemple le style Fusion.Donc si je le lance là, on va avoir un style encore un petit peu différent.Là, vous voyez que les bords sont un peu plus arrondis.
00:05:31 :Donc ce n'est pas très visible avec un seul bouton, mais si vous avez une interface complète,ces styles seraient un peu plus visibles.Donc vous voyez que ce style, on peut le passer grâce aux arguments.
00:05:41 :Donc on a ces arguments ici qui sont envoyés à notre fichier main.pyque l'on récupère avec le module 6 et que l'on passe à notre QApplication.
00:05:48 :Bien souvent, vous verrez également dans d'anciennes versions de PySide,des gens qui n'utilisent pas ce module 6, mais qui sont donc obligés de passer ici une liste d'arguments vides.
00:05:57 :Donc tout simplement une liste avec les crochets vides ici.Ce n'est plus le cas forcément avec PySide 6.C'est-à-dire qu'on peut directement créer une instance de QApplication sans avoir besoin de passer une liste.
00:06:06 :Mais dans les versions précédentes de PySide, vous aviez besoin de passer au minimum une liste vide.Ou si vous étiez intéressé de passer les arguments, et bien de passer 6.argv comme on l'a fait précédemment
00:06:17 :pour modifier par exemple le style de notre application.Donc ça, c'est quelque chose que je ne fais généralement jamais.Je vous le montre puisque c'est quelque chose qu'on voit dans quasiment tous les scriptsque vous allez trouver sur Internet et notamment dans les anciennes versions de PySide.
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.