- 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 :Maintenant qu'on a fini de créer l'API, on va s'attaquer à l'interface avec la création des widgets.Donc j'ai l'interface devant moi ici, on a plusieurs widgets qu'il va falloir créer.
00:00:11 :Les premiers, ça va être des labels, donc ce qu'on appelle des labels, c'est-à-dire tout simplement du texte.Ça va être à partir de la classe QLabel.
00:00:19 :Donc on a QLabel, on en a un ici, qualité, un pour la taille et un pour le dossier de sortie.Ensuite on va avoir ce qu'on appelle des spinbox, donc deux spinbox qui nous permettent de rentrer un nombre.
00:00:29 :On amène des petites flèches ici qui nous permettent d'augmenter le nombre ou de le réduire,ou on peut même rentrer directement une valeur.Donc par exemple si je mets 25 ici, ça écrit directement dans le spinbox.
00:00:40 :Les spinbox, on va pouvoir leur donner une valeur maximale et minimale.Dans ce cas-ci, par exemple, je ne peux pas dépasser 100.Donc si j'essaie de mettre un nombre plus grand que 100, vous voyez que ça ne marche pas.
00:00:49 :Je m'arrête à 15 et si j'essaie de mettre le 0 pour faire 150, ça ne fonctionne pas.Donc on va avoir pareil avec la taille ici, avec un autre spinbox.
00:00:57 :Et on va avoir enfin ici un line edit.Donc c'est en fait une ligne de texte dans laquelle on peut écrire quelque chose.Donc là c'est le nom du dossier dans lequel on va mettre les images qui vont avoir été converties.
00:01:08 :Si je supprime le nom du dossier ici, vous voyez qu'on a ce qu'on appelle un placeholder.Donc en fait un texte qui va être mis en grisé comme ceci,qui nous indique ce que l'on veut mettre à l'intérieur de cette boîte de texte.
00:01:20 :Donc ça fait peut-être un peu répétition avec le label ici,mais voilà c'est quelque chose que l'on peut mettre aussi à l'intérieur d'un line edit.
00:01:27 :Et enfin on va avoir le list widget, donc qui est ici,dans lequel on va mettre les images que l'on veut convertir.Et pour finir, un bouton ici, donc un QPushButton, sur lequel on va cliquer pour faire la conversion.
00:01:37 :On va avoir un dernier widget en fait, qui est pour l'instant caché,et que l'on va révéler uniquement quand l'utilisateur met des images au-dessus de l'interface.
00:01:46 :Donc comme je vous l'avais montré dans les parties de présentation de l'application,quand on commence à glisser et déposer des images,on a une petite indication ici qui va apparaître,qui va nous dire que l'on peut déposer tout simplement les images sur l'interface,pour les ajouter dans la liste.
00:02:00 :Donc pour l'instant il est caché, mais il va quand même falloir le créer bien entendu,pour pouvoir l'afficher au moment du dépôt des images dans l'interface.
00:02:08 :Donc voilà pour les présentations,et on va tout de suite aller dans PyCharm pour créer ces widgets.Donc dans PyCharm, je suis ici dans mon fichier main window, là encore, comme toujours.
00:02:18 :Pour l'instant j'ai juste changé le QMainWindow,puisque je n'ai pas envie d'avoir une fenêtre avec une barre de menu et tout ça.Donc je suis reparti sur un QWidget tout simple,et j'ai changé le titre de la fenêtre,en mettant donc cette window title ici pour mettre le titre à PyConverter.
00:02:33 :Donc c'est tout ce que j'ai fait dans l'interface,sinon c'est vraiment le live template que l'on avait créé tout au début de la formation.Je vais aller dans la méthode CreateWidgets pour créer mes widgets.
00:02:43 :Donc le premier qu'on va créer c'est le label pour la qualité,donc je vais faire self.lbl-quality, comme ceci,et donc moi je préfixe là encore de ce à quoi il correspond,donc dans le cas d'un label je mets lbl,donc là encore trois lettres qui spécifient que ce widget sera un QLabel.
00:02:59 :Donc ce QLabel va être égal à QtyWidgets.QLabel,donc c'est une classe,et on va lui passer tout simplement le texte que l'on veut afficher,donc je vais mettre qualité avec deux points,et ça va être le texte qui va être affiché sur ce QLabel.
00:03:12 :On va avoir ensuite un SpinBox,donc le SpinBox là encore je vais mettre un petit raccourci,moi je mets spn,et là encore ça va être quality,donc spnQuality,qui va être égal là encore à QtyWidgets.QSpinBox,
00:03:25 :comme ceci,et on ne met rien ici dans les parenthèses,on va ajouter en fait les valeurs maximales et minimalesà l'intérieur de la méthode ModifyWidgets dans une prochaine partie.
00:03:34 :Pour l'instant je laisse ça vide,et on va continuer avec cette fois-ci le label pour la taille,donc je vais l'appeler Labelsize,et ça va être là encore QtyWidgets, donc QLabel,et on va rentrer le texte taille tout simplement avec les deux points.
00:03:48 :On va avoir ensuite un SpinBox pour la taille,qui va être associé au label,là encore QtyWidgets.QSpinBox,si j'arrive à l'écrire, voilà.Ensuite on va avoir un label pour le dossier de sortie,donc je vais l'appeler Labels-DossierOut,et ça va être un QLabel.
00:04:05 :Donc là c'est encore la même chose,et je vais mettre un texte dossier de sortie avec deux points.Ensuite on va avoir le LineEdit,donc pour ça je vais utiliser la classe QLineEdit,et comme raccourci moi je mets LE pour LineEdit,donc LineEditDossierOut,qui va être égal à QtyWidgets.QLineEdit.
00:04:23 :Là encore je ne mets rien,on mettra le texte, donc le placeholder,directement dans la méthode ModifyWidgets.Pour l'instant je laisse ça vide ici,et je ne mets même pas le texte de base,on le mettra aussi dans ModifyWidgets.
00:04:35 :Je fais self.lw, ensuite files,donc lw pour ListWidget,donc ça va être le QtyWidgets.QListWidgetqui va contenir les images que l'on veut convertir,et pour finir je vais mettre le bouton pour la conversion,donc bouton convert qui va être égal à un QPushButton,sur lequel je vais mettre le texte conversion,
00:04:55 :et pour finir le numéro complémentaire si vous voulez,donc à savoir le widget qui va être affichéquand on va déposer des images sur l'interface.
00:05:03 :Donc ça va être un label,je vais l'appeler LBL-DropInfo,et ça va être égal à un QtyWidgets.QLabel,et je vais mettre tout simplement un accent circonflexepuisqu'on va mettre ce label en dessous de la ListWidgetpour indiquer, donc c'est en fait une petite flèchequi indique qu'il faut déposer l'image sur le ListWidget.
00:05:21 :Donc je fais la petite flèche avec un accent circonflexe,et je vais mettre un texte qui ditdéposer les images sur l'interface, comme ceci.Donc c'est tous les widgets dont on a besoin,les 3 ou 4 labels ici,les Spinbox, donc on a 2 Spinbox,un LineEdit, le ListWidget,
00:05:38 :et ensuite un bouton et un autre label.Donc vous voyez, c'est toujours un peu les mêmes widgetsqu'on utilise, mais il y en a quand même des nouveauxqui apparaissent, comme le QSpinbox et le QLineEdit,et le QListWidget, on l'avait vu dans la partiesur les notes, donc le premier projet
00:05:51 :qu'on a fait ensemble, mais là vous allez voirqu'avec la gestion du drag and drop,donc le glisser déposé dans l'interfacepour ajouter les images dans ce QListWidget,on va aller un peu plus loin avec ce widget,puisque c'est quand même un comportementun peu plus avancé sur ce widget,
00:06:05 :que l'on ne voit pas tous les jours.Donc voilà pour la création des widgets,et dans la prochaine partie, on va voir cette fois-ciles layouts, donc en fait on va avoir un seullayout dans cette application qui va êtreun QGridLayout, donc un layout en grid,donc on se retrouve tout de suite dans la prochaine partie
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.