- 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 :Dans cette partie, on va voir la modification des widgets, donc dans la méthode ModifyWidgets,qui va nous permettre notamment de configurer les étendues de nos Spinbox,puisque pour l'instant ils vont de 0 à 99, donc on va vouloir changer ces valeurs.
00:00:12 :Également leur donner des valeurs par défaut, là aussi pour les Spinbox mais aussi pour le LineEdit.Et j'en ai profité également pour ajouter tout de suite la feuille de style.
00:00:21 :Donc à l'intérieur de mon main.py, je passe le ApplicationContext à mon MainWindow.J'ai changé aussi un peu le Resize, donc là j'utilise encore la largeur et la hauteur de mon écran de MacBook,et je divise ces valeurs par 4 pour la largeur et par 2 pour la hauteur.
00:00:37 :Donc le contexte, je le passe à mon MainWindow, je vais faire POMB pour me rendre dans mon MainWindow,et donc le contexte, je le récupère ici à l'intérieur de ma méthode Init.
00:00:46 :J'en ai profité également pour insérer ici le module CutieCore,puisqu'on va l'utiliser pour aller aligner le texte à l'intérieur des Spinbox pour le mettre à droite,puisque par défaut il est à gauche dans les Spinbox.
00:00:58 :Donc vous pouvez ajouter directement ce module CutieCore, puisqu'on va l'utiliser tout de suite.Dans la méthode ModifyWidget, j'ai déjà tapé tout le code,puisque ce n'est pas très intéressant pour vous de me voir taper comme ça des lignes de code,là il y en a quand même pas mal.
00:01:10 :Donc j'ai déjà tapé le code et je vais vous expliquer tout ce qui se passe ici.Donc ça on l'a déjà vu, c'est le CSS, donc je vais juste chercher le CSS avec mon ApplicationContext,et la méthode GetResource, donc ça c'est pareil que dans la partie sur Pynos,donc je ne vais pas m'étendre là dessus.
00:01:25 :Par contre ensuite, on a des choses qu'on n'a pas encore vues, notamment l'alignement.Donc pour changer l'alignement sur des widgets, on a cette méthode, SetAlignment,et comme je vous le disais, on va utiliser le module CutieCore,avec cette constante CutieCore.cutie.alignRight.
00:01:40 :Donc AlignRight, Right qui veut dire à droite,donc on va mettre le texte à la fois sur les Spinbox mais aussi sur le LineEdit,à la droite du widget.
00:01:48 :On pourrait mettre aussi AlignLeft si on voulait, vous voyez que la constante existe aussi,si jamais vous avez des choses que vous voulez aligner en haut ou en bas,vous aurez également AlignTop et AlignBottom.
00:01:58 :Donc nous on va laisser AlignRight puisque par défaut il est à gauche,donc nous on veut le mettre à droite.Donc ça je le fais pour le SpinboxQuality, pour le SpinboxSize et pour le LineEditDossierOut.
00:02:08 :Donc à chaque fois c'est la même chose, la même méthode et la même constante.Ensuite on a le Range, donc le Range en fait c'est l'étendue de nos Spinbox,donc je fais un SetRange sur le Spinbox de qualité et de taille,donc SpinboxQuality et SpinboxSize et je le mets de 1 à 100.
00:02:24 :Donc le premier argument c'est la valeur minimale et le deuxième c'est la valeur maximale.La méthode elle s'appelle SetRange, donc Range ça veut dire étendue en anglais.
00:02:32 :Après je fais un SetValue, donc là on va retrouver les valeurs qui vont être passées à notre API.Si vous vous rappelez bien dans la méthode ReduceImage,on avait une valeur pour la qualité par défaut qui était à 75et pour la taille on avait une taille de 0.5.
00:02:46 :Donc là moi je vais aller avec une échelle de 1 à 100 pour les deux Spinboxet donc on fera un petit calcul mathématique pour s'assurerque quand on va utiliser notre API et bien cette valeur de 50,on la divise pour retrouver une valeur qui va de 0 à 1 à l'intérieur de notre API.
00:03:00 :Ensuite on a, donc là j'ai mis une section que j'ai appelée Divers,dans laquelle on a trois trucs un peu différents.Donc le premier c'est ce que je vous avais dit dans les parties précédentes,le PlaceholderText, alors là attention il y a beaucoup de majuscules,faites bien attention je me plante toujours à chaque fois,
00:03:14 :moi j'ai toujours envie de mettre un H majuscule ici mais il n'y en a pas.Donc là encore l'autocomplétion peut beaucoup vous aider pour ce genre de choses.
00:03:20 :Donc SetPlaceholderText et on va passer donc le texte qu'on veut mettre,qu'on veut afficher en fait quand il n'y a pas de texte à l'intérieur du dossier Out.
00:03:28 :Par défaut moi je vais mettre un texte dans ce LineEdit,donc le texte c'est Reduced, donc là encore c'est le texte qu'on avait par défaut dans notre API.
00:03:35 :Donc je réutilise la même chaîne de caractère que je vais affichergrâce à la méthode SetText dans le LineEdit.Donc comme ça dès qu'on lance l'interface par défaut on aura un dossier de sortiequi va être indiqué et qui va être Reduced.
00:03:48 :Pour finir on va tout simplement cacher le label que l'on va afficheruniquement quand l'utilisateur dépose des images sur l'interface.Donc ce label qu'on va cacher c'est le label DropInfoet j'utilise tout simplement la méthode SetVisible.
00:04:02 :Donc SetVisible c'est une méthode qu'on peut utiliser sur tous les widgetsqui va nous permettre de cacher ou d'afficher un widget.Donc si je dis SetVisible False ça va cacher le widgetet si jamais je veux le réafficher je peux faire SetVisibleet le mettre à True et ça va l'afficher de nouveau.
00:04:17 :Donc par défaut il est visible et donc moi je veux le cacherquand on va lancer l'interface donc par défaut il va être cachéet donc je mets cette ligne de code ici dans le ModifyWidgetpour que l'on ait ce comportement par défaut puisque ModifyWidgetsi vous vous souvenez bien on l'appelle automatiquement dans notre SetupUI
00:04:32 :donc tout ce qu'on met ici dans ModifyWidgetdès qu'on lance l'interface ça va être exécuté.Donc comme ça on aura bien les bons alignements, on aura la feuille de stylequi va être appliquée sur notre application, les bonnes étenduesici pour nos spinbox et donc les labels et le line edit
00:04:47 :qui vont être également modifiés.Donc je vais essayer de lancer mon application pour voir ce que ça donnedonc je clique sur ma configuration ici et ça semble fonctionneron a bien donc déjà la feuille de style très visible iciavec le thème sombre. Si on essaye de changer
00:05:01 :la valeur dans les spinbox vous voyez que par défaut on a bien 75, 50et Reduce donc les valeurs par défaut sont bien appliquées.Si j'essaye de mettre 100 ça fonctionne, si j'essaye de mettre 100 ça ne fonctionne plusdonc l'étendue fonctionne bienet le label donc DropInfo est bien caché par défaut.
00:05:16 :Donc tout fonctionne, on a bien modifié les widgets comme il fallaitdonc là vous voyez c'est la première fois je crois qu'on met quelque choseà l'intérieur de ModifyWidget donc j'espère que pour vous c'est clairce qu'on fait à l'intérieur de cette méthode. Vous voyez moi j'aime bien
00:05:28 :il y a quand même beaucoup de choses ici dans une interface comme celle-cidonc j'aime bien séparer comme ça puisque imaginez si vous mettiez toutdans la même méthode à la suite ça ferait une grosse méthode avec vraimentles layouts, les widgets, les connexionstoutes les modifications qu'on fait ici donc là je trouve que
00:05:43 :une fois qu'on a séparé les choses comme ça c'est plus facile de s'y retrouver après.Je sais que si je veux modifier l'étendue ici je peux aller dansModifyWidget et c'est à l'intérieur de cette méthode que je vaisretrouver les lignes de code qui permettent de modifier les valeurs par défaut
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.