Développement Tkinter Python - Débutant à avancé | Jayanta Sarkar | Skillshare

Vitesse de lecture


1.0x


  • 0.5x
  • 0.75x
  • 1 x (normale)
  • 1.25x
  • 1.5x
  • 1.75x
  • 2x

Développement Tkinter Python - Débutant à avancé

teacher avatar Jayanta Sarkar, Behind the Code: Jayanta Sarkar

Regardez ce cours et des milliers d'autres

Bénéficiez d'un accès illimité à tous les cours
Suivez des cours enseignés par des leaders de l'industrie et des professionnels
Explorez divers sujets comme l'illustration, le graphisme, la photographie et bien d'autres

Regardez ce cours et des milliers d'autres

Bénéficiez d'un accès illimité à tous les cours
Suivez des cours enseignés par des leaders de l'industrie et des professionnels
Explorez divers sujets comme l'illustration, le graphisme, la photographie et bien d'autres

Leçons de ce cours

    • 1.

      Introduction

      2:13

    • 2.

      Qu'est-ce que TKinter ?

      3:16

    • 3.

      Installation de Tkinter

      3:13

    • 4.

      Votre première fenêtre Tkinter avec Mainloop

      3:56

    • 5.

      Créer une fenêtre principale

      5:06

    • 6.

      Window Resizing, MinMax Limits

      7:52

    • 7.

      Widget de tkinter pour étiquette

      16:04

    • 8.

      Widget de cadre Tkinter

      10:11

    • 9.

      Widget de bouton Tkinter

      10:41

    • 10.

      Widget d'entrée Tkinter

      10:36

    • 11.

      Text Widget

      9:24

    • 12.

      Widgets de message

      4:00

    • 13.

      mise en page de l'emballage

      11:05

    • 14.

      Mise en page en grille dans tkinter

      12:14

    • 15.

      Mise en page de lieu

      6:45

    • 16.

      Dispositions imbriquées (cadre dans cadre)

      6:41

    • 17.

      Widget de bouton de coche Tkinter

      9:09

    • 18.

      Widget Radioboutton Tkinter

      8:21

    • 19.

      Widget de boîte de liste Tkinter

      14:58

    • 20.

      Combobox (via ttk) dans Tkinter

      8:35

    • 21.

      Boîte à retours Tkinter - Widget

      8:01

    • 22.

      Widget Échelle Tkinter

      7:25

    • 23.

      Barre de progression dans Tkinter (via ttk)

      7:22

    • 24.

      Menu et sous-menus dans Tkinter ter

      9:52

    • 25.

      Séparateur, fenêtre à couche, carnet de notes book

      8:38

    • 26.

      La reliure sur commande (méthode plus simple)

      4:52

    • 27.

      Utiliser la méthode bind() (méthode avancée)

      10:02

    • 28.

      Mise au point, saisie et état de widget

      11:47

    • 29.

      État de l'widget State

      7:23

    • 30.

      Mini projet d'application de dessin avec méthode d'événement et de liaison

      12:26

    • 31.

      Variables Tkinter et liaison de données

      8:18

    • 32.

      Message Boxes (messagebox)

      6:55

    • 33.

      Dialogs de fichier

      10:11

    • 34.

      File Dialogs Part 2

      5:24

    • 35.

      Color Chooser (colorchooser)

      4:25

    • 36.

      Barres d'outils Tkinter python

      6:13

    • 37.

      Ajouter des images dans Tkinter ter

      9:14

    • 38.

      Redimensionner, recadrer, faire pivoter et filtrer des images (Coussin + Tkinter)

      9:16

    • 39.

      Utiliser le module ttk

      4:35

    • 40.

      Styliser les widgets avec ttk

      8:48

    • 41.

      Thèmes personnalisés dans ttk k

      9:21

    • 42.

      Créer des applications GUI à l'aide de classes

      10:41

    • 43.

      Structuring Larger Applications

      13:51

    • 44.

      Exemple 1 - Bouton stylisé personnalisé

      6:46

    • 45.

      Exemple 2 Champ de saisie personnalisé (étiquette + entrée ensemble)

      6:28

    • 46.

      Conversion Python GUI en EXE

      9:24

    • 47.

      Projet 1 : application de liste de tâches

      12:10

    • 48.

      Enregistrer définitivement les données avec JSON

      10:33

    • 49.

      Projet 2 : Calculatrice simple

      14:08

    • 50.

      Projet 3 : horloge numérique

      5:10

    • 51.

      Projet 4 : Convertisseur de devises

      14:34

    • 52.

      Projet 5 : Convertisseur d'unités

      2:07

    • 53.

      Créez la structure et définissez la logique pour afficher les unités dans combobox

      12:15

    • 54.

      Travailler sur la méthode de conversion

      13:36

    • 55.

      Inscription à la connexion depuis l’interface graphique

      6:29

    • 56.

      L’inscription aux connexions partie 2

      8:24

    • 57.

      Connexion en ligne - Inscription Partie 3

      10:46

    • 58.

      avec un mini moteur de recherche GUI

      7:56

    • 59.

      Travailler sur la fonction de recherche

      7:07

    • 60.

      Affichez le résultat dans une zone de texte

      13:17

  • --
  • Niveau débutant
  • Niveau intermédiaire
  • Niveau avancé
  • Tous niveaux

Généré par la communauté

Le niveau est déterminé par l'opinion majoritaire des apprenants qui ont évalué ce cours. La recommandation de l'enseignant est affichée jusqu'à ce qu'au moins 5 réponses d'apprenants soient collectées.

18

apprenants

--

À propos de ce cours

Vous êtes prêt à donner vie à vos compétences en Python avec des applications interactives sur bureau ?
Ce cours est conçu pour vous faire passer de débutant à avancé en matière de développement d'interfaces graphiques sur Python à l'aide de Tkinter, la boîte à outils intégrée à l'interface graphique de Python. à savoir comment il fait pour être utilisé le niveau de niveau débutant, pour être sûr Que vous commenciez tout juste votre parcours avec Python ou que vous cherchiez à créer des applications de bureau professionnelles, ce cours vous équipera de tout ce dont vous aurez besoin.

Nous allons commencer par les bases (création de votre première fenêtre Tkinter) et progresser progressivement vers la création d’applications structurées et riches en fonctionnalités à l’aide de widgets, de mises en page, de la gestion d’événements, d’images, de dialogues et de concepts relatifs du b.a.p. À la fin de ce cours, vous aurez la confiance et les compétences nécessaires pour concevoir et développer des projets GUI réels.

Ce que vous apprendrez :

  1. Introduction à Tkinter - Configurez votre première fenêtre, comprenez mainloop(), et commencez la programmation GUI.

  2. La gestion des fenêtres - Contrôlez le titre, la taille, la position, les icônes, l'écran plein et le redimensionnement.

  3. Widgets de base : travaillez avec des étiquettes, des boutons, des champs de saisie, des zones de texte, des messages et des cadres.

  4. Gestion de la mise en page : organisez des interfaces utilisateur en utilisant les modes Pack, Grille, Placer et imbriquer les modes imbriqués.

  5. Widgets avancés - Explorez les boutons à cocher, les boutons radio, les boîtes de liste, les comboboxes, les boîtes à rotation, les échelles, les barres de progression, les menus, les onglets et bien plus encore.

  6. Gestion d'événements : apprenez les commandes, les liaisons et les événements clavier/souris et les états du widget.

  7. Variables et liaison de données Tkinter : utilisez StringVar, IntVar, DoubleVar et BooleanVar pour mettre à jour les données en temps réel.

  8. Boîtes de dialogue - Mettez en œuvre des boîtes de message, des dialogues de fichiers et des sélecteurs de couleurs.

  9. Menus et barres d'outils : créez des barres de menus, des sous-menus et des barres d'outils fonctionnelles avec des icônes.

  10. Tkinter orienté objet – Créez des applications évolutives en utilisant les cours, l’héritage et la réutilisation.

  11. : travaillez avec des images, dessinez des formes, gérez les événements de la souris et créez des applications de dessin.

  12. Widgets thématiques (ttk) - Améliorez vos interfaces utilisateur avec des styles modernes, des thèmes et des designs personnalisés.

À qui s'adresse ce cours ? ?

  • Débutants qui connaissent les bases de Python et veulent apprendre le développement d'interfaces graphiques.

  • Les développeurs Python qui cherchent à créer des applications de bureau.

  • Les apprenants et les professionnels qui souhaitent vivre une expérience pratique avec des projets GUI réels.

Rencontrez votre enseignant·e

Teacher Profile Image

Jayanta Sarkar

Behind the Code: Jayanta Sarkar

Enseignant·e

Jayanta Sarkar is a dedicated Python programmer and full-stack web developer with a passion for creating dynamic and interactive web applications. With a robust background in both front-end and back-end development, Jayanta excels in building seamless user experiences and efficient, scalable systems.

Over the years, Jayanta has honed his skills in various programming languages and frameworks, making him proficient in technologies such as JavaScript, CSS, HTML, and MySQL. His expertise extends to developing comprehensive solutions that integrate sophisticated database management with intuitive user interfaces.

Jayanta's journey in the tech industry is marked by a continuous drive to learn and adapt to new technologies. He has developed and published several successf... Voir le profil complet

Level: All Levels

Notes attribuées au cours

Les attentes sont-elles satisfaites ?
    Dépassées !
  • 0%
  • Oui
  • 0%
  • En partie
  • 0%
  • Pas vraiment
  • 0%

Pourquoi s'inscrire à Skillshare ?

Suivez des cours Skillshare Original primés

Chaque cours comprend de courtes leçons et des travaux pratiques

Votre abonnement soutient les enseignants Skillshare

Apprenez, où que vous soyez

Suivez des cours où que vous soyez avec l'application Skillshare. Suivez-les en streaming ou téléchargez-les pour les regarder dans l'avion, dans le métro ou tout autre endroit où vous aimez apprendre.

Transcription

1. Introduction: Bonjour, et bienvenue dans le développement d'une interface graphique en Python avec Kiner. Je m'appelle Jotha Shokar et je suis votre instructrice pour ce Il s'agit du cours le plus complet et le mieux organisé sur le développement des systèmes gastro-intestinaux avec l'aide de Kiner. À la fin de ce cours, les étudiants seront en mesure de comprendre les bases de la programmation GI avec Kiner, de programmation GI avec Kiner créer des applications de bureau entièrement fonctionnelles, d' utiliser des assistants, des gestionnaires de mise en page et de gestion d'événements, appliquer la programmation orientée objet dans l'application Kinter et de créer des projets concrets Et si nous parlons de la structure de base, je vais d'abord vous donner une introduction, comment nous pouvons l' installer, quoi consiste Kinter et en comprendre le fonctionnement principal Ensuite, nous allons passer à gestion de Kinter Window Ensuite, nous allons apprendre les sorciers Kinter. Ici, nous allons apprendre les magiciens de base. Ensuite, nous allons apprendre la gestion de la mise en page, telle que l'emplacement des grilles PAG et les mises en page imbriquées. Ensuite, nous allons passer à l'assistant avancé de Kinter Nous allons découvrir tous les Wizzer avancés un par un Ensuite, nous allons en apprendre davantage sur les événements Kiner, tels que la liaison de commandes, tels que la liaison de commandes événements du clavier et de la souris, etc. Et dans le chapitre suivant, nous allons parler de la variable Kinter et de la liaison de données Ensuite, nous allons travailler avec des boîtes de dialogue, telles que la boîte de message, la boîte de dialogue de champ et le sélecteur de couleur Ensuite, nous allons parler des manœuvres et des Colbords. Ensuite, nous allons apprendre la programmation orientée objet dans Kiner. Vous pouvez créer des applications GI à l'aide de classes, structurées en applications plus grandes, héritées et réutilisables par des assistants. Au chapitre suivant, nous allons apprendre les images et le canevas. Et enfin, nous allons apprendre le magicien à thème avec TTK. Nous allons utiliser le module TTK, assistants de style, des thèmes personnalisés, etc. Ensuite, après avoir appris tout ce chapitre, nous allons nous plonger dans la section projet. Nous allons aborder certains projets de base. Ensuite, nous allons aborder certains projets intermédiaires, et je vais également aborder certains projets avancés. Alors, qu'est-ce que tu attends ? Commençons par créer votre propre application de bureau. Merci beaucoup 2. Qu'est-ce que TKinter ?: Bonjour et bienvenue. Il s'agit du premier tutoriel sur Kiner. Sinon, appuyez sur TK Enter. Dans ce tutoriel, je vais vous présenter qu'est-ce que Kiner ? Qu'est-ce que Kinter et pourquoi devrions-nous apprendre Kiner ? Kinter est la bibliothèque d'interface graphique standard pour Python. Il fournit un premier moyen simple de créer une application de bureau avec des éléments graphiques tels que des boutons, des étiquettes, des zones de texte et des mobs Il s'agit donc essentiellement d'une interface utilisateur graphique construite par Python. Si vous avez des connaissances de base sur le codage Python, vous pouvez commencer ce voyage. C'est l'un des moyens les plus simples de créer une application de bureau. Et si je parle de son point clé, il est livré avec une bibliothèque intégrée. TKnter est livré avec Python préinstallé, il n'est donc pas nécessaire de l' installer séparément Le point clé suivant est per sur TCL, sinon TCA. Il agit comme une interface Python pour le kit d'outils TCL TGI. En gros, Kiner n'est pas un kit d'outils GI en soi, mais plutôt un rappeur Python autour d'une boîte à outils GI existante appelée TCL TK Maintenant, la question est : qu' est-ce que TCL et Tiki ? TCL est l'abréviation de Tool Command Language. Il s'agit d'un langage de script, et TK est une boîte à outils GI initialement développée pour TCL afin de créer une application graphique Ensemble, TCL et TK constituent un système puissant et flexible utilisé pour créer une interface utilisateur Vous avez donc maintenant la puissance de Python avec la fonctionnalité TK GUI. Et la prochaine caractéristique la plus importante est qu'il est multiplateforme. Les applications Kiner peuvent fonctionner sous Windows, McWays et Linux. Il est donc polyvalent. Il est alors léger et convient aux applications gastro-intestinales de petite à moyenne taille. De plus, il est piloté par les événements. Soutenez les pompons pilotés par des événements, tels que la réponse à des cliques ou à des frappes de touches tels que la réponse à des cliques ou à des frappes Tels sont les points essentiels de Kiner. Parlons maintenant de ce que nous pouvons créer avec Kiner ? Nous pouvons créer des outils de bureau tels qu'une calculatrice pour faire des applications, etc. Nous pouvons créer à partir d'applications basées sur des applications telles que le système de connexion. Nous pouvons développer des jeux ou de simples programmes interactifs. Nous pouvons créer des applications de dessin ou des outils visuels. Il convient parfaitement aux applications gastro-intestinales de petite à moyenne taille. Cela pourrait être votre première étape pour créer une application GI avec le langage de programmation Python. C'est pourquoi tu devrais apprendre Kiner. Il s'agit simplement d'un didacticiel d'introduction à Kinder. Dans le prochain tutoriel, nous allons apprendre comment installer Kiner pour différentes plateformes Merci d'avoir regardé cet état pour notre prochain tutoriel. 3. Installation de Tkinter: Bonjour, les gars. C'est bon de vous voir B. C'est le deuxième tutoriel lié à KinterT Nous allons apprendre comment installer Ginter Dans la plupart des cas, kinter est préinstallé avec Python. Vous pouvez vérifier s'il est disponible en l'exécutant dans l'interpréteur Python. Il vous suffit de taper Import Ginter, puis d' imprimer cette déclaration Sinon, vous pouvez imprimer n'importe quoi. Si aucune erreur ne s'affiche dans votre terminal, cela signifie qu'il fonctionne. Je l'ai installé dans votre système. Je vais vous montrer la démonstration. Comme vous pouvez le voir, nous sommes dans l'éditeur de code de mon studio utilisateur. Dans un premier temps, je vais importer le module Ginter. Importer Ginter TK Enter, celui-ci. Ensuite, je vais imprimer une déclaration. Imprimer. Dans le double cours, je vais taper : Kinter, TK, Enter fonctionne Je vais configurer ce fichier. Si je clique sur ce fichier, si je clique dessus, si je clique sur le bouton Exécuter et que, comme vous pouvez le voir, il est imprimé, Kinter fonctionne car il est préinstallé avec Python C'est pourquoi nous n'avons pas besoin de l'installer. Si vous installez Python à l'aide de l'installateur officiel, Kiner est déjà disponible. Pour le vérifier, tapez simplement Python AM Ginter. Si vous le tapez dans votre Windows Powershell, une petite fenêtre d'interface graphique de démonstration devrait apparaître. Laisse-moi te montrer. Comme vous pouvez le voir, je suis dans mon Windows Power Shell. Si j'exécute ce code de tableau de bord, laissez-moi vous le montrer, puis j'appuie sur Entrée Comme vous pouvez le voir, une fenêtre apparaîtra. C'est à des fins de démonstration. Cela signifie que inter est préinstallé avec Python. De même, si votre système d'exploitation est MwS for McWskiner est fourni avec Si ce n'est pas le cas, tapez simplement, est-ce que EW est installé. Python TK, puis tapez Python 3:00 A.M. Kiner. Il vérifiera qu'il est installé sur votre système. Mais pour le système d'exploitation Linux, vous devrez peut-être l'installer manuellement à l'aide d'APT. Tapez simplement PSUDoepTgt Abdet. Ensuite, PSUdoepTgt installe Python trois TK. Et pour les tests, il suffit de taper Python 3:00 A.M. Kinder. Voici comment installer Kinter dans votre système. Pour ce tutoriel, sœur, nous allons utiliser le système d'exploitation Windows. Voici donc toutes les vidéos à venir basées sur le fonctionnement de Windows. C'est tout pour ce tutoriel. Dans le prochain tutoriel, nous allons notre première fenêtre d'hiver. Merci donc d' avoir regardé cette vidéo, restez connectés pour le prochain tutoriel. 4. Votre première fenêtre Tkinter avec Mainloop: Il s'agit donc du premier tutoriel pratique lié à Kiner, et nous allons créer ici notre première fenêtre Kinker Comme vous pouvez le voir dans mon répertoire de travail actuel, je crée déjà un fichier Python. Dans un premier temps, nous devons importer le module. Nous devons importer Kiner. Il existe deux manières d' importer le module TK. Dans un premier temps, nous pouvons tout importer depuis Kinter. Pour cela, il suffit de taper depuis Kiner TKnter. Je vais importer Star, il va tout importer, chaque classe, chaque fonction qui se trouve dans Mais il existe une autre méthode. Cette ligne importe toutes les classes et fonctions nécessaires depuis la bibliothèque Kinter Vous pouvez également importer Ginter en utilisant le nom d'Ali. Pour cela, vous devez taper import Enter en tant que TK. C'est la deuxième méthode pour importer KInterF maintenant, je voudrais utiliser la première méthode, donc je vais commenter cette ligne. Ne t'inquiète pas. Je vous l'expliquerai plus tard dans nos prochains tutoriels. Ensuite, nous devons créer la fenêtre principale. Pour créer la fenêtre principale, il faut définir une variable. Dans notre cas, je vais taper root, root égal à ici, nous devons utiliser l'instance de classe T de type T K et round versus to the class. Ici, nous créons une instance de la classe TK, qui représente la fenêtre racine de votre application. Ensuite, nous devons démarrer la boucle d'événements Ming. Pour cela, ici, je vais taper root point main loop et round brass. La méthode de boucle d'événements principale lance la boucle d'événements kintered, qui permet à la fenêtre de rester ouverte et de réagir aux interactions de l'utilisateur jusqu'à sa fermeture Si je définis ce fichier et que j'exécute ce code dans mon terminal, une fenêtre vide s'ouvrira. Laisse-moi te montrer. Après avoir appuyé sur le bouton Exécuter, comme vous pouvez le voir, une fenêtre vide s'ouvre ici. Je vais maintenant attribuer un titre à cette fenêtre. Pour cela, tapez ici root point title. Dans les versets ronds, je vais taper, c'est simple, tapez Jim, une interface graphique simple. Sinon, vous pouvez taper votre premier GI et vous devez définir le fichier et exécuter le code dans votre terminal. Prononcez le code dans votre terminal comme vous pouvez le voir, vous pouvez maintenant voir le nom de la fenêtre de ce simple GY, et vous pouvez remarquer qu'il est réactif grâce à cette boucle principale. Ici, nous créons notre première fenêtre vide GI à l'aide de Python Kinder Parlons maintenant de la fonction de boucle principale. La fonction Root point Mino démarre la boucle d'événements de l'interface graphique. Ce sont des moyens d'interactions telles que le clic, la saisie, etc. La fenêtre reste toujours ouverte jusqu'à ce qu'elle soit fermée manuellement. Sans cela, la fenêtre clignoterait ou se fermerait instantanément. Si je commente cette ligne , que définis ce fichier et que j'exécute ce code dans mon terminal, vous remarquerez maintenant qu'il n'ouvre pas la fenêtre. En gros, il a ouvert la fenêtre, mais instantanément il la ferme. Si je le relance à nouveau, vous remarquerez à peine que vous pouvez remarquer quelque chose parce que nous avons besoin de cette boucle principale pour garder cette fenêtre ouverte C'est l'utilisation de la boucle principale, et c'est important. C'est tout pour ce tutoriel. Dans le prochain tutoriel, nous allons parler de géométrie. Restez à l'affût pour le prochain tutoriel. 5. Créer une fenêtre principale: Bonjour, les gars. C'est bon de te revoir. Encore une fois, je suis de retour avec un nouveau tutoriel lié à Python Kinter dans cette section, nous allons apprendre comment gérer et personnaliser la fenêtre principale de Kinter Ces concepts fondamentaux sont essentiels pour créer et peaufiner votre application d' interface graphique conviviale Dans notre précédent tutoriel, nous avons appris comment créer la fenêtre principale. Pour cela, nous devons d'abord importer le module inter. Tapez donc, importez TK enter, TK entrez en tant que TK. Ensuite, en utilisant son nom de classe, je vais créer une variable d'instance, et je vais la nommer root DV T. Root égale à T TkTkTLass, c'est une classe et un point-virgule dans cette ligne et une base T TkTkTLass, c'est une classe et un point-virgule dans cette ligne et une ronde pour une base fermée et arrondie Cette ligne crée la racine principale. Comme vous le savez, pour exécuter cette application, nous devons appeler une racine d'événements. Pour cela, je vais taper root point main root. En gros, cela exécutera l'application. Si j'exécute ce code dans mon terminal, cela créera une fenêtre vide. Il s'agit de la fenêtre vide. Si vous souhaitez donner un titre à cette fenêtre, oui, vous le pouvez. Il vous suffit de taper, laissez-moi vous montrer entre le verre Ticket et le menu, vous devez taper root le titre de l'application Mc Inter. Si je définis ce fichier et que j'exécute ce code, comme vous pouvez le voir, ce titre est maintenant attribué à cette application Inter. Parlons maintenant de la géométrie. Je souhaite définir la taille de la fenêtre, position de la fenêtre et l'icône de la fenêtre. Pour cela, nous devons utiliser la fonction de géométrie. Laisse-moi te montrer. Je vais taper la géométrie du point racine. Ici, je vais définir la taille de notre fenêtre. À l'intérieur des codes doubles, je veux définir la taille 800 X 600. Cela va définir la taille de la fenêtre. Après avoir défini ce fichier, si j'exécute ce code dans mon terminal, maintenant vous pouvez le voir, maintenant vous pouvez remarquer que cette fois, il a ouvert une fenêtre beaucoup plus grande. Ensuite, avec la taille de cette fenêtre, je vais définir la position de cette fenêtre à l'endroit où elle va ouvrir la fenêtre. Pour cela, après avoir défini la taille avec la hauteur, je vais ajouter, je vais ajouter avec 100. C'est pour les Xxs et pour les YxS je vais en ajouter 50 C'est pour YxS. Après avoir défini ce fichier, si j'exécute ce code dans mon terminal, vous pouvez maintenant remarquer le résultat. À partir du XX, il fournira un écart de 100 pixels, et à partir du YXS, il fournira un écart de 50 pixels De même, si j'augmente la valeur de YXS, si je lui donne 500, que je crée ce fichier et que je réexécute ce code, maintenant vous pouvez remarquer que cette fois, la fenêtre s'est ouverte depuis le YXS Cette fois, il offre un écart de 500 pixels par rapport au sommet et de 100 pixels depuis le laboratoire . C'est ainsi que nous pouvons positionner cette fenêtre. Nous pouvons définir l'endroit où il va s'ouvrir sur notre écran. N'oubliez pas que nous devons d'abord fournir W, puis nous devons fournir la hauteur. Après cela, nous devons utiliser le signe d' addition et nous devons fournir la valeur Xofte puis la valeur de décalage Y. Vous devez suivre ce mot avec hauteur, X en face et Y en face. Voyons maintenant comment définir une icône pour notre application, notre application GI. Pour cela, nous devons utiliser la fonction Icône Bitmap. Laisse-moi te montrer. Donc, pour taper, racine, point, icône Bitmap, icône bitmap Ensuite, à l'intérieur de la cavité ronde nous devons fournir le chemin du fichier Dans le double cours, je vais taper le nom de cette icône icon.co. N'oubliez pas que pour l'icône, nous devons toujours utiliser l'extension point ICO. Dans le cas contraire, cela ne fonctionnera pas. Alors attachez CO dans icon.co. Je vais configurer ce fichier. J'appuie sur définir ce fichier, exécutons le code dans notre terminal. Quelqu'un a exécuté ce code dans mon terminal et comme vous pouvez le voir, vous pouvez maintenant voir l'icône. C'est l'icône que j'ai utilisée. C'est une icône de téléchargement de fichiers. Dans ce didacticiel, nous apprenons comment définir une dimension à notre fenêtre, comment ouvrir notre fenêtre à une certaine position et comment attribuer une icône à notre application. Dans la prochaine partie de ce didacticiel, nous allons parler du redimensionnement des fenêtres, des limites maximales minimales et du mode plein écran Merci d'avoir regardé cette vidéo, restez connectés pour le prochain tutoriel. 6. Redimensionnement de fenêtre, limites MinMax: Bonjour, les gars. Contente de te revoir. Il s'agit du deuxième tutoriel fenêtres RelatateKmer. Comme vous pouvez le voir, maintenant, si j'exécute ce code dans mon terminal, vous pouvez voir la fenêtre à cette position. Maintenant, si j'essaie de redimensionner la fenêtre, oui, elle est redimensionnable Nous pouvons étendre sa largeur et sa hauteur, mais nous pouvons fixer une limite. Laisse-moi te montrer. Ici, je vais utiliser une fonction appelée redimensionnable Un certain type. Point racine redimensionnable À l'intérieur des roulettes, je vais créer des modes. À la fois la valeur baisse, la baisse s'estompe. C'est pour with, et ensuite, je vais passer une fausse valeur pour la hauteur, les modes, et je vais définir ce fichier Après avoir défini ce fichier, si j'exécute ce code dans mon terminal, et cette fois, si j'essaie de redimensionner cette fenêtre, elle n'est plus redimensionnable car nous rendons les deux valeurs fausses, mais si je définis l'une des valeurs vraie, je vais donc rendre la valeur de hauteur Ensuite, définissez ce fichier et un autre code dans mon terminal. Vous pouvez maintenant remarquer que nous pouvons augmenter la hauteur de cette fenêtre. Nous pouvons augmenter la hauteur de cette fenêtre. Mais si j'essaie d'étendre la largeur de cette fenêtre, cela ne fonctionnera pas car cette fois, nous rendons valeur de largeur fausse et la valeur de hauteur vraie. Nous pouvons donc augmenter la hauteur, mais nous ne pouvons pas étendre la largeur de cette fenêtre. Parlons maintenant de la fonction de taille minimale et de taille maximale. Je vais donc commenter cette ligne, et ici, je vais d'abord utiliser, je vais utiliser la taille minimale, le type d'été, la racine, la taille moyenne supérieure, MIN, la taille minimale, et ici, je vais définir la dimension. Ici, je vais dire que c'est une dimension minimale, 400 par 300 et je vais définir ce fichier. Après avoir défini ce fichier, si j'exécute ce code dans mon terminal et que j'essaie de réduire la taille de la fenêtre, vous remarquerez qu'à un moment donné, il arrête de redimensionner la fenêtre car sa taille minimale 400 et pour la hauteur, nous en utilisons 300 Nous ne pouvons pas réduire la hauteur et la largeur de cette fenêtre. C'est ainsi que nous pouvons définir la taille minimale de cette fenêtre. De la même manière, nous pouvons définir la taille maximale. Je vais dupliquer cette ligne et au lieu de la taille minimale, je vais utiliser la taille maximale. Tapez donc la taille maximale maximale, et ici, je vais dire dimension. Pour la largeur, je vais en prendre 1 200. Et pour la taille, ici je vais en prendre 800. Je vais configurer cette pile et je vais réexécuter ce code. Maintenant, si j'essaie d'augmenter la hauteur intérieure à un moment donné, cela arrête d'augmenter la hauteur et la roue de cette fenêtre. Désormais, la largeur devient 1 200 pixels et la hauteur 800 pixels. Nous ne pouvons pas aller plus loin parce que nous avons parlé ici de la limite maximale. C'est ainsi que nous pouvons définir la taille maximale et minimale de cette fenêtre. J'espère que maintenant c'est clair 40. Parlons maintenant du vote en plein écran. Avant d'appliquer le mode plein écran, je vais commenter les deux lignes, la taille maximale et la taille minimale car nous devons remplir la condition. C'est pourquoi nous devons commenter ces lignes. Vous pouvez également commenter la géométrie, mais vous n'en avez pas besoin pour appliquer le plein écran Je vais taper root, root, attribute function, attributes, puis dans les versets ronds du cours unique, je vais taper en plein écran. Plein écran Ensuite, je vais faire en la condition soit vraie. Je vais configurer ce fichier. Après avoir défini ce fichier, si j'exécute ce code dans mon terminal, il n'y a pas de problème. Oui, notre fenêtre va passer en plein écran, mais il n'y a aucun moyen de quitter le mode plein écran. Je vais donc exécuter ce code dans mon terminal, et après l'avoir exécuté dans notre terminal, comme vous pouvez le voir, il crée le plein écran. Maintenant, il crée une fenêtre en plein écran, mais il n'y a aucun moyen de quitter la fenêtre car nous ne définissons aucune condition pour cela. Sinon, nous ne définissons pas le contraire, nous ne créons aucune fonction pour cela. Et ici j'utilise plusieurs écrans, donc depuis mon autre écran, je peux fermer cette fenêtre. Donc, depuis ma barre de remorquage, je vais fermer la fenêtre Et quittez le programme. Maintenant, la question est de savoir comment utiliser le plein écran ? Comment quitter le plein écran. Pour cela, nous devons créer une fonction. Je vais donc créer une fonction. Je vais définir une fonction et le nom de notre fonction est, et le nom de notre fonction est quitter le plein écran. Je vais donc définir la fonction en utilisant DF DF et le nom de notre fonction est quitter le plein écran. Ensuite, au cours de la ronde, dites ici, je vais créer un événement ici, je vais faire en sorte que l'événement soit égal à aucun. Ensuite, dans la fonction Exit four screen, je vais utiliser cette méthode, Good dot attributes. Copiez celui-ci, je vais le mettre ici et je vais le supprimer de cet endroit. Maintenant, la question est de savoir pourquoi j'utilise ce paramètre facultatif dans cet événement de fonction égal à none ? Parce que Kinter fait automatiquement l'éloge d'un objet d'événement lorsqu' une touche est enfoncée Lorsque nous louons une clé, Kinter pense qu'il s'agit d'un événement. Par conséquent, par défaut, nous en faisons un événement. Et maintenant, nous devons le lier et appeler le mot clé event. Pour ce troupeau, je vais utiliser la méthode bind. Ne t'inquiète pas. Je vous expliquerai plus tard pourquoi j'utilise bind. Tapez donc root, point, bind method. Liez, puis à l'intérieur des presses rondes, elle est à l'intérieur du double code moins que supérieur à l'intérieur. Ici, je vais taper scape. Je veux dire, quand je fais l'éloge de la touche Scape, je veux quitter le plein écran, certains types de sortie de la fonction plein écran, j'appelle la fonction de sortie en plein écran. Je vais configurer ce fichier. Avant de définir ce fichier, permettez-moi de corriger quelque chose ici, nous devons quitter le mode plein écran. Nous devons faire en sorte que ce soit faux, pas vrai, faux. Vous allez quitter le mode plein écran, puis nous devons activer le mode plein écran en utilisant les mêmes méthodes d'attributs. Je copie les attributs du point racine de cette ligne, et je vais les coller ici. Et cette fois, je vais faire en sorte que ce soit vrai. Donc, tout d'abord, il va activer le mode plein écran. Ensuite, chaque fois que je fais l'éloge de Scapekey sur mon clavier, il quitte le mode plein écran Donc, pour configurer ce fichier, si j'exécute ce code dans mon terminal, comme vous pouvez le voir, il active d'abord le mode plein écran. Et chaque fois que je fais l'éloge de Scapekey sur mon clavier, comme vous pouvez le voir, il quitte le mode plein écran Voici donc comment nous pouvons ouvrir notre fenêtre à différentes géométries. J'espère que vous comprendrez maintenant comment fonctionne la géométrie dans Kinter. Dans le prochain tutoriel, nous allons travailler sur les assistants de base de Ginter Merci donc d' avoir regardé cette vidéo, restez connectés pour un prochain tutoriel. 7. Widget de tkinter pour étiquette: Bonjour, les gars. C'est bon de te revoir. Encore une fois, je suis de retour avec un autre kinter lié au tutoriel Et aujourd'hui, dans ce tutoriel, nous allons parler de Label Wizard. Assistant d'étiquetage utilisé pour afficher du texte ou des images dans une application graphique. C'est l'un des magiciens les plus basiques. Et si je parle de sa fonctionnalité clé, il est utilisé pour afficher du texte et des images statiques. Personnalisez l'apparence à l'aide de propriétés telles que la police, la couleur, la taille, etc. Il peut s'agir d'un espace réservé à une enquête ou fournir des commentaires dans une application Et si nous parlons de sa syntaxe, d'abord, lorsque vous tapez label method, puis dans les runbs, nous devons fournir la fenêtre principale sinon le nom du cadre Ensuite, nous pouvons utiliser ces propriétés. Sinon, nous pouvons utiliser ces paramètres, le texte et d'autres options. Et nous avons diverses options de configuration telles que la police, arrière-plan, le premier plan, etc. Parlons maintenant de ses options. Nous devons indiquer sept options dans Level Wizard. Texte, image, police, arrière-plan, pour le remplissage X, le remplissage Y. Dans notre première option, il dissocie l'étiquette, et en utilisant l'option image, il disparait l'image au lieu du texte et en utilisant l'option image, il disparait l'image il disparait Ensuite, nous avons la police de caractères. Nous pouvons définir le style de police en l'utilisant. Ensuite, nous avons la couleur de fond. Ensuite, nous avons la couleur de premier plan. La couleur de premier plan correspond à la couleur du texte. Ensuite, nous avons le rembourrage. Il fournit un rembourrage horizontal autour du contenu de l'étiquette Ensuite, nous avons le rembourrage Y. Il s'agit de fournir un rembourrage vertical autour du contenu de l'étiquette Donc, sans perdre votre temps, commençons par l'aspect pratique et voyons comment nous pouvons nous en servir. Comme vous pouvez le voir, nous sommes dans mon éditeur de code Visual Studio. Dans un premier temps, je vais saisir le module TK. Type Hemo, importation, teinte au format TK. Sinon, vous pouvez importer tout le programme en utilisant start. Et si vous souhaitez importer tous les programmes du module TK pour cela, vous devez lier depuis Kinkerimport, star Il va importer toutes les méthodes, toutes les classes de ce module. Je vais commenter la ligne précédente. Ensuite, nous devons créer la fenêtre principale. Pour créer d'abord la fenêtre principale, je vais déclarer une variable root, root égale à cette fois, je vais taper decay. Cela va créer la fenêtre principale. Ensuite, je vais attribuer un titre à cette fenêtre. Pour cela, je vais taper root point title. Puis à l'intérieur des presses rondes, type hemo, exemple d'étiquette Kiner. Ensuite, je vais définir la géométrie de cette fenêtre. Je vais taper root, géométrie dans les ronders, dans le double parcours, je vais taper 300 X 200 et vous devez également exécuter la boucle principale pour exécuter l'application Il tape root main loop, main loops one. Si j'exécute ce code dans mon terminal, comme vous pouvez le voir, il crée ici une fenêtre. Et maintenant, dans cette fenêtre, je vais mettre un texte. Pour cela, nous allons utiliser Level Wizard. Quelqu'un doit supprimer cette fenêtre, et ici je vais taper une variable, et notre variable est level Niveau égal à ici, je vais taper level wizard. Étiquetez un. Ensuite, dans les presses rondes, nous devons d'abord fournir le nom de la fenêtre comme nom de fenêtre, je vais passer root Ensuite, nous devons fournir le texte. Le texte que je souhaite transmettre dans cette étiquette. Nous devons saisir le texte du nom de cet attribut. Texte égal à ici, je vais passer bonjour à Tinter. Ensuite, je vais utiliser la police de caractères. Pour la police, quand taper, police, égale à l'intérieur de la base ronde, à l'intérieur du double cours , nous devons d' abord définir la police que nous allons utiliser, et je vais utiliser une police aérienne. Ensuite, nous devons définir la taille de police. En tant que taille de police, je vais définir 16. Atrocma ensuite, je vais passer pour Long Color. Pour la couleur des poumons, je vais utiliser G, G égal et ici je vais utiliser la couleur blanche. blanc. Ensuite, je vais utiliser la couleur de fond, BG, égale à l'intérieur des codes doubles, le type hemo, la couleur bleue Je vais configurer ce fichier. Modifiez ce fichier, exécutez le code. Si j'exécute ce code, comme vous pouvez le voir, il ne montre rien. Je ne montre pas le texte car nous n'emballons pas cette étiquette. Nous devons maintenant emballer cette étiquette. Ici, nous devons utiliser une méthode appelée label point PAC. Puis, à l'intérieur du rond, il est écrit : « Pour l'instant , je ne vais rien transmettre , je vais configurer ce fichier et je vais exécuter ce code Après avoir exécuté ce code, vous pouvez maintenant voir le texte. Ici, vous pouvez remarquer que notre taille de police est 16 pixels et que notre style de police est aérien. Et comme couleur de fond, nous disons couleur bleue, et comme couleur de forgon, nous disons ici couleur blanche Et maintenant, je veux ajouter un petit rembourrage XSS, également dans le sens YxS Padix Superca Hendotype Padg égal à TAM. Coma. Comme je vais attribuer un rembourrage à Y. Pad, Y égal à cinq Si nous exécutons ce code dans mon terminal, vous pouvez maintenant le voir au padding Il a un rembourrage de dix pixels dans la direction X et de cinq pixels dans la direction Y xs. Vous pouvez également attribuer un rembourrage lorsque vous colmatez cette étiquette. Quelque chose comme ça, laissez-moi vous montrer le pad Y. Je vais ajouter le pad Y, et ici je vais en ajouter 20 Et je vais configurer ce fichier et réexécuter ce code. Autour de ce code, vous pouvez voir le résultat. Maintenant, il ajoute du rembourrage autour de l'étiquette, pas à l'intérieur de l'étiquette la même manière, vous pouvez ajouter pada lorsque vous emballez cette étiquette Maintenant, laissez-moi vous expliquer le code ligne par ligne. Donc d'abord, vous pouvez voir que nous créons une variable dont la racine est égale à TK. Elle crée la fenêtre principale de l'application. Ensuite, nous attribuons un titre. En gros, il va définir le titre de la fenêtre. Ensuite, nous attribuons une géométrie. Je précise la taille de la fenêtre. Ensuite, nous allons passer à la configuration des étiquettes. un premier temps, nous passons dans quelle fenêtre, je veux créer la mousse, qui est la route, puis nous utilisons la propriété du texte Il va spécifier le texte que je souhaite afficher dans cette fenêtre. Ensuite, nous utilisons C, il va définir la police, le style de police et la taille de police. Ensuite, nous avons le terrain. Cela va définir la couleur du texte. Ensuite, nous avons le contexte. Je vais définir la couleur de fond. Ensuite, nous avons le padx et le pad y. Padex va ajouter du rembourrage dans la direction, et le pad y va ajouter du rembourrage Ensuite, nous emballons l'étiquette en utilisant la méthode label dot pack. Il va placer l' étiquette dans la fenêtre. Sinon, si vous créez l'étiquette et ne la placez pas sur la fenêtre, l'étiquette ne sera pas affichée. Et nous ajoutons également un petit rembourrage en direction de YxS. Voyons maintenant comment afficher une image à l' aide de l'assistant d'étiquetage. Comme vous pouvez le voir dans mon répertoire de travail actuel, nous avons deux images, une image GPG et une autre image PNG Et si j'ouvre cette image PNG, c'est une icône, et sa résolution est de 512 x 512. Je vais donc utiliser cette image, cette image PNG. Ici, je vais agrandir la taille de la géométrie. Ici, je vais taper 700 par 700. Je vais configurer ce fichier. Je vais maintenant afficher cette image dans cette fenêtre racine. Pour cela, nous devons utiliser une méthode, et le nom de notre méthode est méthode photo Image. Dans un premier temps, je vais déclarer une variable et le nom de notre variable est image. Image, image égale à, nous devons utiliser une méthode appelée image photo. Tapez donc une image photo. C'est la méthode, c'est la méthode de Kinter. Puis dans le run brcs. Nous devons fournir le fichier, le chemin du fichier. Quelle image allons-nous utiliser ? Je vais utiliser un attribut appelé fichier. Fichier égal à celui contenu dans le Rundss, comme vous pouvez le voir dans mon répertoire de travail actuel, nous avions cette image Je veux donc copier le nom de cette image, et ici je vais passer à la page le nom de l'image Png underscoimage point PNG Fondamentalement, dans cette variable, nous chargeons cette image en utilisant la méthode de l'image photo. Maintenant, nous devons créer un niveau en utilisant cette image. Pour cela, je vais déclarer une autre variable, label, et celle-ci est de niveau deux. Le niveau deux est égal à deux. Nous devons utiliser le niveau de la méthode des niveaux. Ensuite, dans le processus d'exécution, nous devons d'abord fournir le nom de la fenêtre qui est root. Ensuite, nous devons fournir l'image. Tapez donc image égale à notre variable image, celle-ci, pour rectifier la variable, je vais changer les noms des variables Ici, je vais ajouter un soulignement. Le soulignement de l'image devient également un soulignement de passe ici. Ensuite, nous devons emballer cette étiquette. Je vais dupliquer cette ligne et ici je vais en ajouter deux. C'est le niveau deux. Je vais configurer ce fichier. Maintenant, exécutons le code et voyons ce qu'il va créer. Après avoir exécuté ce code dans mon terminal, comme vous pouvez le voir, il affiche cette image à l'aide de l'assistant de niveau. Et il ajoute également un rembourrage de 20 pixels dans la direction YXS. Et une chose dont vous devez vous souvenir, B par défaut, B Default Ginter supporte le format PNG, le format GIF Mais il ne supporte pas les images au format JPG. Laisse-moi te montrer. Je vais supprimer ce terminal, et je vais remplacer le chemin du fichier. Je duplique cette ligne et je commente la précédente. Le moment venu, je vais utiliser cette image, cette image JPG à pois. Ici, je vais copier le nom du fichier et je vais mettre ici. Je vais également passer le point d'extension JPG, et je vais définir ce fichier. Si j'essaie d'exécuter ce code dans mon terminal, laissez-moi vous le montrer. Je vais corriger une erreur car comme je vous l'ai dit, nous ne prenons pas en charge les images JPG Pour prendre en charge d'autres formats d' images tels que le format JPG, vous devez utiliser un autre module , le module Pillow. Laissez-moi vous montrer comment nous pouvons l'utiliser. Dans un premier temps, vous devez télécharger le module dans votre système. Je vais ouvrir le Window Power Shed. Comme vous pouvez le voir, nous sommes dans mon Window Powershion. Et pour télécharger le module Pillow, vous suffit de taper, de regarder, installer Pillow, PIL Ow, puis d'appuyer sur Entrée Après avoir appuyé sur Entrée, comme vous pouvez le voir, exigence est déjà satisfaite car je télécharge déjà ce package, mais vous devez terminer le processus de téléchargement. Ensuite, vous pouvez utiliser ce nodu Pillow est une bibliothèque d'imagerie Python issue de ce module Pillow Nous devons importer au total deux méthodes, image et image ticking sous forme abrégée, pillow connu sous Ici, je vais taper à partir de Pill. Je vais y aller. Je vais importer une image. Je vais également importer le ticking des images. Celui-ci. Je vais maintenant commenter cette ligne car lors de ce processus, nous ne pouvons pas importer d'image GPG Ici, je vais taper une seule commande lend et je vais taper pour les images JPG. Dans un premier temps, je vais créer une variable appelée image image undersco Je vais utiliser la même variable. Sinon, je vais le définir en image JPG. Image JPG, c'est notre variable et égale à « Je vais utiliser une méthode ». Nous devons utiliser une méthode du module Pillow, taper image point et le nom de notre méthode est ouvert. Et dans les herbes rondes, dans les codes doubles, nous devons transmettre le chemin du fichier. Et comme vous pouvez le voir, nous allons transmettre ce chemin de fichier, cette image JBIG à pois Ensuite, vous pouvez voir ici, nous utilisons la méthode, image photo. Cela provient de Tintermdule, mais cette fois, nous devons utiliser image photo du Ici, je vais taper une photo. Égal à l'image d'une photo à points. Ensuite, à l'intérieur des ronds et à l'intérieur des ronds, je vais passer le chemin du fichier image, qui est Image underscoe Je copie le nom de la variable et je vais le transmettre ici. Ensuite, je vais montrer cette photo dans ce niveau. Alors Hemo tape photo, et je vais configurer ce fichier Après avoir défini ce fichier, si j'exécute ce code dans mon terminal, vous pouvez maintenant le voir afficher l'image GPG Maintenant, si vous souhaitez redimensionner cette image, oui, vous le pouvez. Je vais vous montrer comment vous pouvez le redimensionner. Pour cela, vous pouvez utiliser la méthode de redimensionnement. Laissez-moi vous montrer comment faire. Je vais faire basculer l'image, souligner le JPG, égal à l'image, souligner le Ici, je vais utiliser la méthode de redimensionnement pour redimensionner. Ensuite, dans les erreurs, nous devons attribuer la dimension, et je veux qu'elle soit de 300 x 300 Ensuite, définissez la dimension de cette image. Si je fais ce code dans mon terminal, comme vous pouvez le voir, cela redimensionne l'image Et aussi, si vous souhaitez faire pivoter cette image, oui, vous le pouvez. Pour cela, je vais dupliquer cette ligne et ici, je vais taper UnderscoeGPG dot Faire pivoter. L'intérieur est rond en hemo type 45 Si je définis ce fichier et que j'exécute ce code dans mon terminal, comme vous pouvez le voir, l'image pivote à 45 degrés. Voici comment nous pouvons utiliser le module Pillow avec Kinter. Cela va nous permettre d'afficher images JPG et par défaut, Kinter ne prend en charge que les images PNG et GIF Tu dois t'en souvenir. C'est tout pour ce tutoriel. Au prochain tutoriel, nous allons parler d'une autre visite. Nous allons parler de visite de cadre. Merci d'avoir regardé cette vidéo, Stadium pour notre prochain tutoriel. 8. Widget de cadre Tkinter: Bonjour, les gars, c'est bon de vous revoir. Encore une fois, je suis de retour avec un autre tutoriel lié à KinRetay. Dans ce tutoriel, nous allons apprendre Frame Dans notre précédent tutoriel, nous allons découvrir Level Wizard et dans ce didacticiel, nous allons en apprendre davantage sur Frame Wizard. Dans Kinter, un cadre est un assistant de conteneur, utilisé pour regrouper et organiser d'autres assistants Il agit comme une résine rectangulaire sur l'écran où vous pouvez placer d'autres assistants, tels que des boutons, des étiquettes et des fichiers texte. Les cadres sont particulièrement utiles pour créer une mise en page complexe en divisant la fenêtre en sections faciles à gérer Si nous parlons de la caractéristique clé du cadre, nous pouvons l'utiliser comme conteneur. Nous pouvons l'utiliser pour le coiffage, sinon pour la parentalité. Les cadres sont principalement utilisés comme conteneurs pour organiser des hiérarchies définies En outre, nous pouvons l'utiliser pour sind. Vous pouvez personnaliser l'apparence du cadre à l' aide de propriétés telles que la couleur d'arrière-plan, la largeur des bordures et le style de relief. Et nous pouvons également l' utiliser comme parent. Un cadre peut servir de parent à une autre visite, ce qui vous permet de passer aux cadres suivants pour les mises en page complexes Si je parle de ses attributs communs tels que l'arrière-plan, il est utilisé pour la couleur de fond du cadre avec la hauteur. En l'utilisant, nous pouvons définir la dimension de ce cadre. Nous pouvons également apporter un soulagement. Je précise le style de bordure, tel que plat, surélevé, enfoncé, tâtonné, Ensuite, nous avons un autre attribut appelé largeur de bordure. Il indique la largeur de la bordure. Commençons donc par la pratique et voyons comment appliquer ces attributs. Comme vous pouvez le voir, nous sommes dans éditeur de code de mon studio de résultats. Dans un premier temps, je vais importer notre module. Je vais donc taper depuis inter pK Enter. Je veux importer, importer. Je veux saisir tous les programmes, donc je vais importer Star. Ensuite, nous devons créer la fenêtre principale à l'aide de l'objet TK. Tapez donc, racine égale à TK. Et aussi, vous savez, nous devons exécuter la boucle d'événements Tinker, la boucle principale Pour ce type de héros, racine et point signifient boucle. Ensuite, dans un premier temps, je vais définir la géométrie. Géométrie du point racine. À l'intérieur du laiton rond, à l'intérieur des codes doubles, je vais attribuer 700 x 700 g 300 à ce 700 et la hauteur est de 300 pixels. De plus, si vous souhaitez attribuer un titre à cette fenêtre, oui, vous le pouvez. Attribuons donc un titre. Je vais donc taper ici, root point title. Et dans les robes rondes, dans les codes doubles, je vais taper frame example. Maintenant, exécutons le code et voyons ce qu'il a écrit. Comme vous pouvez le voir, il crée une fenêtre, un nom, un exemple de cadre. Et ici, nous avons parlé de la dimension, 700 x 300 pixels. Maintenant, je vais créer le cadre principal. Pour cela, je vais déclarer une variable appelée frame, frame égal à ce que nous devons utiliser ici nous devons utiliser une fonction appelée frame. À l'intérieur du laiton rond, nous devons d'abord passer la source dans laquelle je veux afficher le cadre, c' est-à-dire la racine. C'est la fenêtre racine, alors je vais assigner wet à ce cadre. Tapez donc we, hem pour attribuer 200 pixels. Ensuite, je vais attribuer une hauteur, une hauteur. Je vais également attribuer 200 pixels. Ensuite, je vais attribuer une bordure avec une bordure avec, et ici je vais assigner une bordure avec fib Comme je vais utiliser un autre attribut. Ici, je veux appliquer le style de bordure. Pour appliquer le style de bordure, nous devons utiliser la propriété en relief. Soulagement. Relief égal à groupé. Pour l'instant, je vais appliquer un style de bordure à tâtons. Ensuite, comme vous le savez, pour créer le cadre, vous devez également emballer ce cadre. Pour cela, je vais attacher frame point frame point PAC mthodpac l'intérieur des roundres si vous voulez appliquer un peu de rembourrage, oui, vous le pouvez. Supposons que je veuille appliquer le pad dans la direction X, pad, X, pad x, dix pixels. Ensuite, je vais appliquer le pad Y, pad, Y, dix pixels. Et je vais configurer ce fichier. Modifiez ce fichier si j'exécute ce code dans mon terminal, vous pouvez voir le résultat ici. Ici, vous pouvez le voir, c'est le cadre que nous créons dans cette fenêtre. Et si vous souhaitez appliquer une couleur de fond pour cela, vous devez taper BG. Ici, je vais taper B, G, arrière-plan. Pour la couleur de fond, je souhaite appliquer une couleur grise. Donc, dans le double code, je vais taper gray, définir ce fichier et réexécuter ce code dans mon terminal. Vous pouvez maintenant voir le résultat. C'est le cadre que nous créons. Ajoutons maintenant du texte dans ce cadre. Oui, vous pouvez ajouter du texte dans ce cadre à l'aide d'une étiquette. Laisse-moi te montrer. Donc, ici, je tape en mono un nom de variable pour l'étiquette. Son type L, L est égal à l'étiquette. Étiquetez d'abord l'intérieur des rondelles, nous devons d'abord fournir le cadre dans lequel je souhaite afficher cette étiquette Le nom de notre cadre est donc frame et le nom de notre variable de cadre est frame. Cadre AVType. Ensuite, nous devons transmettre le texte. Quel texte je souhaite afficher dans cette étiquette ? Tapez donc la propriété du texte. Texte égal à l'intérieur des codes doubles. Je vais taper Hello Word. Et si vous voulez attribuer une couleur trouvée, supposons par exemple G, et je veux attribuer une couleur blanche à une couleur ronde. Après avoir créé l'étiquette, vous devez également emballer cette étiquette. Pour cela, tapez point pack Math, pack. Et si vous souhaitez attribuer un panoramique, oui, vous le pouvez. Donc pour l'instant, je ne vais attribuer aucun rembourrage et je vais définir ce fichier, l'afficher et exécuter ce code dans mon terminal Exécutez ce code dans mon terminal, comme vous pouvez le voir, c'est ce qu'il crée. Maintenant, vous vous demandez peut-être ce qui se passe ici. Comme vous pouvez le constater, le texte a été inséré avec succès dans ce cadre, mais il n'applique pas les attributs que nous appliquons dans notre cadre, tels que la hauteur du large, couleur de fond, etc. Mais il applique le style boda car si vous utilisez le niveau dans le cadre, vous devez appliquer ces attributs dans cet attribut de niveau Laisse-moi te montrer. Donc pour l'instant, je vais annuler la largeur et la hauteur de l' arrière-plan Je n'en ai pas besoin. Je vais appliquer une couleur de fond à cette étiquette, BG. Contexte. Pour le fond, je vais utiliser de la couleur grise, et je vais satisfaire. Si j'exécute ce code dans mon terminal, vous pouvez maintenant le voir appliquer la couleur de fond à cette étiquette. Ensuite, si vous souhaitez attribuer un rembourrage, oui, vous le pouvez. Et maintenant je décide que je veux mettre ce niveau sur le côté inférieur de cette fenêtre. Pour cela, nous pouvons définir ici le côté de ce cadre lorsque nous emballons le cadre. Laisse-moi te montrer. Hémotype côté, côté égal à et hémotype laissé. Je veux aligner ce cadre sur le côté gauche de cette fenêtre. Si je définis ce fichier et que je réexécute ce code, vous pouvez voir le résultat Comme vous pouvez le voir cette fois, il a aligné le cadre à gauche de cette fenêtre. Maintenant, je veux remplir ce cadre dans la direction X. De cette façon à cette façon, laissez-moi vous montrer comment. Ici, je vais utiliser une propriété appelée fill. Sentez-vous égal à l'intérieur des codes doubles, je vais utiliser Y. Je veux le remplir dans la direction de YxS Maintenant, si je traverse ce terminal et que je réexécute ce code, mais avant de l'exécuter, nous devons passer une virgule, sous-traiter ce fichier et exécuter ce code dans mon Vous pouvez maintenant le voir remplir le cadre dans la direction YxS. Si je supprime le rembourrage dans toutes les directions, laissez-moi vous montrer si je supprime les rembourrages, puis si je reconfigure ce fichier et que j'exécute ce code. Maintenant, vous pouvez le voir supprimer le rembourrage dans toutes les Si j'essaie d'augmenter la hauteur de ce cadre, laissez-moi vous montrer, comme vous pouvez le voir, que lorsque j'augmente la hauteur, cela augmente également la hauteur du cadre parce que Hay place ce cadre à la diction YX. En gros, Harry crée un sware indiquant AUCUNE fenêtre en utilisant Frame Wist Et dans cet assistant de création de cadres, vous pouvez passer des boutons, etc. Si vous avez des connaissances en TML, nous pouvons comparer ce cadre à un élément profond En gros, il agit comme un conteneur. Et n'oubliez pas que vous pouvez appliquer ici différents types de style de bordure, tels que Grobe, enfoncé, plat, surélevé, etc. Et si vous souhaitez déplacer ce cadre vers la droite, il suffit de le placer du côté Ty, égal à droite, lorsque vous le balisez. Voici la vidéo d'introduction de Frame Wizard, comment nous pouvons l'utiliser et comment nous pouvons l'appliquer. Dans le prochain tutoriel, nous allons parler de l' assistant de boutons et de la façon dont nous pouvons utiliser l' assistant de boutons avec cadre. Merci donc d' avoir regardé cette vidéo, restez connectés pour notre prochain tutoriel. 9. Widget de bouton Tkinter: Salut, les gars. C'est bon de te revoir. Encore une fois, je suis de retour avec un nouveau tutoriel lié à Kiner. Et aujourd'hui, dans ce tutoriel, nous allons apprendre à utiliser Button Wizard. Dans TNCR, un assistant de création de boutons est utilisé pour créer un bouton sur lequel l'utilisateur peut cliquer pour déclencher une action ou un événement spécifique dans l'application GI L'assistant de création de boutons est fourni avec plusieurs options configurables, vous permettant de personnaliser son apparence et son comportement. En une seule phrase, nous pouvons déclencher n'importe quelle action ou événement à l'aide d'un bouton. Si vous parlez d'extension de l' assistant de boutons, sinon de propriétés, il inclut la propriété du texte, la propriété commande dans la propriété de hauteur, la propriété arrière-plan du premier plan, la propriété police et la propriété d'état En utilisant la propriété du texte, nous pouvons afficher l'étiquette sur le bouton et en utilisant la propriété de commande, une fonction ou une méthode à exécuter lorsque vous cliquez sur le bouton En utilisant la hauteur, nous pouvons définir la taille du bouton. À l'aide du forgon et de l'arrière-plan, nous pouvons définir la couleur oubliée et la couleur d' arrière-plan du bouton Si vous souhaitez définir le texte du bouton, dans ce cas, vous devez utiliser la propriété de police. Ensuite, nous avons la propriété de l'État. Nous pouvons définir l'état du bouton. Cela peut être normal, sinon désactivez-le, et normal est le mode par défaut. Passons maintenant à l'aspect pratique et voyons comment utiliser l'assistant de boutons. Comme vous pouvez le voir, nous sommes dans mon éditeur de code Wizard Studio, et dans un premier temps, je vais importer notre module TK, un certain type, import, TK incur en tant que TK Sinon, si vous souhaitez importer tous les pompons, vous pouvez importer start. Maintenant, nous devons définir une fonction, une fonction à appeler lorsque le bouton est enfoncé. Pour cela, je vais taper DV et le nom de notre fonction est button kick Sinon, cliquez sur le bouton « semaine ». Bouton de soulignement. Dans le RoundResf maintenant, je ne vais passer aucun paramètre, puis dans la fonction, je vais imprimer un niveau Je vais afficher un niveau. Ici, je vais taper level point config. À l'intérieur de la robe, je vais passer le texto. Texte équivalent à un clic sur un bouton. Vous pouvez maintenant voir qu'il affiche un avertissement car nous ne définissons pas cette variable. Ne t'inquiète pas Je vais définir la lettre variable. Ensuite, après avoir créé la fonction, nous devons créer la fenêtre principale. Donc, pour déclarer la racine égale à la fonction TK TK. Cela va créer un objet TK. Ensuite, je vais définir un titre. Donc, pour taper root GOT title, à l'intérieur des robes rondes, à l'intérieur des doubles goodes, je vais taper un exemple de bouton Tinker Ensuite, je vais définir la géométrie de cette fenêtre. Pour cela, je vais taper root point Geometry. Géométrie des points à l'intérieur des bretelles rondes. Ici, je vais définir 300 par X 200. Ensuite, nous devons définir le niveau. Je vais déclarer la variable de niveau. Niveau égal à l'étiquette à points T. Ensuite, dans le cadre du processus de sélection, je veux exécuter ce niveau dans nos fenêtres racine. Je vais taper le nom de la fenêtre root. Ensuite, nous devons transmettre le texte. Texte égal à ici que je vais taper, appuyer sur le bouton « be » puis je vais déclarer la police. en faire deux à l'intérieur des presses rondes, je veux utiliser une police aérienne De plus, nous devons déclarer la taille de la police, je vais donc passer 14 pixels. Donc, pour créer cette étiquette, vous devez également emballer cette étiquette. Pour cela, je vais taper label point PAC method, pack. Je souhaite également définir un certain rembourrage dans la direction YxS. Je vais taper pad, Y, dix pixels, sinon, dix points. Pour exécuter l'application, je vais définir la boucle principale. Je vais taper root point main loop. Et avant de définir ce fichier et d'exécuter ce code dans mon terminal, comme vous pouvez le voir, ici, nous devons taper TK K en minuscules, celui-ci. Et je vais configurer à nouveau ce fichier et exécuter ce code dans mon terminal. Après avoir exécuté ce code dans mon terminal, vous pouvez voir la fenêtre. Appuyez sur le bouton ci-dessous. Ici, nous ne créons pas encore le bouton. Je vais maintenant créer le bouton sous le texte. Pour cela, je vais utiliser l'assistant des boutons. Dans un premier temps, je vais définir une variable appelée button, button égal à PK Dart button, button Nub Ensuite, à l'intérieur des boutons, nous devons d'abord définir la fenêtre dans laquelle je veux afficher le bouton Dans notre cas, root. Ensuite, nous devons définir le texte, le texte du bouton. Tapez automatiquement du texte, égal à l'intérieur du double bureau, puis cliquez sur M. Cliquez sur Moi. Ensuite, nous devons définir la commande, la propriété de la commande. Commande égale à, ici nous devons appeler la fonction. Dans le cas contraire, l'événement. Comme vous pouvez le constater, nous créons déjà un événement et nom de notre événement se trouve en cliquant sur le bouton. Hémotype sur le bouton de soulignement . N'oubliez pas que lorsque vous appelez cette méthode otherwise function, vous n'avez pas besoin de fournir d'accolades, vous devez appeler le nom de la fonction Après la virgule, vous pouvez définir la police. Fonte de type Hemo. Dans la citation, je vais utiliser la police Aerial. Aérien. Afra coma, je veux définir la taille de police, donc je vais passer 12 Ensuite, je vais dire la couleur de fond, BG. Pour la couleur de fond, je vais utiliser le bleu clair. Nous définissons ici la couleur de fond. Ensuite, je vais définir le forron color AG. Pour la couleur ronde, égale à, et je veux attribuer cette couleur à la couleur de la pièce. Et comme vous le savez, après avoir créé le bouton, vous devez également l'emballer en utilisant la méthode pack. Ici, je vais taper button dot, pack. Et si vous souhaitez ajouter du rembourrage, oui, vous le pouvez. Ici, je vais taper le pad Y. Je veux fournir un rembourrage dans la direction YX, et ici je vais passer 20 pixels Je vais configurer ce fichier. Maintenant, vous vous demandez peut-être à quoi va servir notre bouton en gros ? En gros, lorsque je clique sur ce bouton, il remplace le texte de cette étiquette. Il va appuyer sur le bouton en dessous, ce bouton de texte a été cliqué car ici j'ai configuré cette étiquette dans cette fonction Maintenant, sauvegardons le fichier et exécutons ce code dans notre terminal. Après avoir exécuté ce code dans notre terminal, comme vous pouvez le voir dans notre fenêtre, nous avons le bouton, et le nom de notre bouton est click me. Ensuite, si je clique sur ce bouton, laissez-moi vous montrer, comme vous pouvez le voir, qu'il a remplacé le texte. Je remplace par un clic sur un bouton car cela a déclenché la fonction. Il s'est déclenché lors d'un clic sur un bouton, et notre fonction a configuré ce texte. Ensuite, je vais vous montrer comment utiliser cet assistant de boutons avec un assistant de cadre ? Comment insérer le bouton dans le cadre ? Pour cela, je vais créer un cadre après cette étiquette. Et le nom de notre cadre est cadre de soulignement du cadre à boutons, égal à la méthode du cadre à points TK, cadre. Ensuite, à l'intérieur du laiton rond, nous devons d'abord fournir la fenêtre dans laquelle je veux afficher ce cadre, qui est root, puis vous devez définir la couleur de fond, BG Le fond est égal à, et je veux dire, couleur gris clair. gris clair Ensuite, je vais définir le style de bordure sm type relief. relief est égal à TK, et je vais utiliser Raised celui-ci. R Je vais mettre une bouteille avec une bordure, et je vais la régler aussi. Ensuite, nous devons également emballer ce type de cadre inférieur : bouton, cadre, point, méthode d'emballage. Ensuite, à l'intérieur du soutien-gorge rond, il est écrit : abord, je vais fournir un rembourrage Y, pad, Y, Padi égal à 20, virgule, puis je vais régler un Padix égal à 20. Ensuite, je vais le remplir et ensuite je vais remplir celui-ci. Sentez-vous à la hauteur du chanvre pour les deux. La prochaine propriété que je vais utiliser expand, expand, equal to true. Si j'exécute ce code dans mon terminal, comme vous pouvez le voir, il créera le cadre et nous devrons le cadre et nous déplacer ce bouton à l'intérieur de ce cadre. Pour cela, dans notre assistant de boutons, nous devons transmettre le nom du cadre du bouton. Cette fois, je ne vais pas passer root. Je vais remplacer root par ce cadre de boutons. Je copie donc le nom du puits, je vais le coller ici et je vais définir ce fichier. Si je définis ce fichier et que je code mon terminal, comme vous pouvez le voir, cette fois, il ajoute le bouton dans ce cadre. Et si je clique sur ce bouton, comme vous pouvez le voir, cela fonctionne toujours. Voici donc comment nous pouvons utiliser l' boutons avec l'assistant de cadre. C'est donc tout pour ce tutoriel. Merci d'avoir regardé cette vidéo. Restez à l'affût pour notre prochain tutoriel. 10. Widget d'entrée Tkinter: Bonjour, les gars. C'est bon de te revoir. Encore une fois, je suis de retour avec un nouveau tutoriel lié à Kinter Wizard Aujourd'hui, dans ce tutoriel, nous allons apprendre l'assistant de saisie. C'est l'un des magiciens les plus importants de Kinter. L'assistant de saisie de Kinter est utilisé pour accepter la saisie de texte sur une seule ligne par l'utilisateur Il est couramment utilisé pour saisir des noms, des mots de passe, des e-mails, des numéros, etc. Si je parle de sa syntaxe, vous devez taper l'entrée du nom de la méthode, puis vous devez réussir le test. Je veux dire le nom du continent parent sur lequel vous souhaitez inscrire l'entrée, puis vous devez passer l'option. Options permettant de configurer les paramètres pour personnaliser la visite, tels que la police, les mauvaises herbes, l' arrière-plan, le premier plan, la justification du récif, etc. Si je parle des options de visite d'entrée, vous pouvez utiliser l'arrière-plan, le premier plan, la police, désherbage, l'affichage, cela sert à masquer les caractères, comme pour le mot de passe, nous utilisons le signe astrologique Prend ensuite la variable qu'elle est associée à une variable inter-chaîne pour définir et valider les valeurs. Ensuite, nous avons les États. Vous pouvez le passer normalement, divisible ou aléatoirement Ensuite, vous deviez le justifier à des fins d'alignement, vraiment pour le style de bordure, et enfin, nous avons V pour contrôler l' épaisseur de la bordure. Commençons par l' aspect pratique et voyons comment utiliser l'assistant de saisie. Comme vous pouvez le voir, on minimise l'éditeur de code du studio. Tout d'abord, j'importe le module kinder. Ensuite, je crée la classe T. Ensuite, je crée la fenêtre principale. Ensuite, j'attribue un titre, exemple d'assistant de saisie. Vous définissez ensuite la géométrie de la fenêtre à 300 et à 200 de hauteur. Ensuite, nous lançons la boucle principale de l'événement. Chaque fois que nous transmettons des données dans notre champ de saisie, nous devons les enregistrer. Pour cela, nous avons besoin d' une variable de chaîne. Ici, je vais déclarer une variable appelée name underscore Y. Nom égal à, je vais définir une variable de chaîne . String v. C'est ça. Fondamentalement, la variable string est une classe de variable kinker Il est utilisé pour lier dynamiquement l'assistant de saisie à une variable. Créons maintenant un assistant de saisie dans Owindo. Je vais taper une entrée. Entrée égale à ici, je vais dire que l' entrée est une entrée de classe. Ensuite, à l'intérieur du rond, il est dit, d'abord nous devons définir, je veux dire le conteneur parent Dans notre cas, c'est root. Après cela, je vais utiliser l'option appelée variable de texte. Tapez donc variable de texte, variable de texte égale à ici que je vais attribuer avec cette variable appelée nom ou variable de nom. Puis une virgule, à la ligne suivante, je vais définir la police Ici, à l'intérieur de la basse ronde, je vais attribuer une police aérienne et définir la taille de police, donc je vais passer 40. Ensuite, après la virgule, nous devons attribuer avec. Je vais lui attribuer un pass 25. Ensuite, je vais attribuer à Round Color AG. Pour le tour, je vais utiliser la couleur bleue. Après cela, je vais attribuer la couleur de fond, BG. Pour BG, je vais attribuer du jaune clair au jaune clair. Ensuite, je vais attribuer une justification parce que je dois l' aligner et le centrer. Puis une virgule, elle, nous devons définir le style de la bordure Alors tapez relief. relief est égal à celui des cheveux, je vais utiliser Grove Value. Dans le cadre du double parcours, je vais réussir à grandir. Ensuite, nous devons définir l'épaisseur de la bordure, certains types B, D, épaisseur de bordure égale à deux. Et je vais configurer ce fichier. Ensuite, après avoir créé l'assistant de saisie, nous devons emballer l'assistant de saisie. Tapez donc la méthode Entry Dot Pack, pack. À l'intérieur de la zone ronde, je vais utiliser le pad Y avec le pad Y, et je vais passer le 20 En gros, il contient l'assistant de saisie et ajoute un rembourrage vertical autour de celui-ci, et j'ajoute 20 bits de rembourrage Maintenant, après avoir défini ce fichier, si j'exécute ce code dans mon terminal, vous pouvez voir l' assistant de saisie dans cette fenêtre. Il s'agit de l'assistant de saisie. Maintenant, ici, vous pouvez passer n'importe quel texte tel que nom, mot de passe, peu importe. Maintenant, créez l'assistant de saisie, nous devons créer une fonction capable de lire l'entrée. Vous devez également créer un bouton. Et chaque fois que vous appuyez sur le bouton, cela va à l'entrée. Créons donc la fonction qui va lire l'entrée. Alors emballez-le, tapez Sol, Dave, et le nom de notre fonction est display. Afficher le trait de soulignement. C'est l'entrée et à l'intérieur des robes rondes, je ne vais pas faire valoir d'argument, et ici je vais imprimer, imprimer Le texte saisi est le mottter du cours Doble Ensuite, nous devons obtenir la valeur à partir de la variable name, nom de type où point Gate Mathub est pointé. Nous saisissons d'abord n'importe quel texte dans ce champ de saisie et il sera stocké dans cette variable de nom. À partir de cette variable de nom, nous allons extraire les données à l'aide cette fonction et ici nous utilisons la méthode de porte pour extraire les données Maintenant, créons un bouton qui affichera l'entrée. Pour cela, pour taper le bouton à l'intérieur des rondes, je vais d' abord fournir le master, qui est root. Après cela, attribut de texte, et je vais taper, je vais le définir, afficher la saisie. Ensuite, je vais passer la commande. Commande, chaque fois que j'appuie sur le bouton, elle commande cette fonction, affiche l'entrée, affiche l'entrée, et nous devons également la regrouper sur le type point pack. Je vais attribuer un petit rembourrage au pavé directionnel YX, Y t. Je vais définir ce fichier Ainsi, chaque fois que je clique sur ce bouton, la fonction de saisie d' affichage est appelée et cette fonction affiche l' intégralité du texte dans la console. Définissez donc ce fichier. Si j'exécute ce code dans mon terminal, nous avons le champ de saisie, et ici, je vais taper mon nom, et je vais cliquer sur ce bouton, Afficher la saisie. Si j'appuie sur ce bouton, vous pouvez maintenant voir dans ma console que mon nom est imprimé. Si vous souhaitez utiliser ce champ de saisie pour le mot de passe, vous devez dans ce cas masquer ces caractères. Pour cela, vous devez utiliser un autre paramètre, sinon une autre option appelée show. Laisse-moi te montrer. Ici, après cela, je vais utiliser un autre paramètre appelé Show. Donc, comme dans le double cours, je vais utiliser le caractère étoile, étoile, et ici je vais passer une virgule pour définir ce fichier Après avoir défini ce fichier, si j'exécute ce code dans mon terminal. Maintenant, si je tape quelque chose dans ce champ de saisie, comme mon nom, vous ne pouvez voir que le caractère étoile. Cela s'est produit à cause de ce paramètre, et si j'appuie sur Entrée, vous pouvez voir le test dans mon joint de consommation, mais vous ne pouvez pas lire les données dans ce champ de saisie. Voici donc comment nous utilisons ce champ de saisie pour le mot de passe. Pour l'instant, je vais recommander cette ligne et redéfinir ce fichier. De plus, si vous souhaitez afficher la mise à jour en direct dans votre interface graphique, vous le pouvez. Pour cela, vous devez utiliser l'assistant d'étiquetage. Laisse-moi te montrer. Tout d'abord, je vais taper un seul commentaire ici, étiquette qui indique également ce qu'est le type. C'est une mise à jour légère. Je vais créer une étiquette. Label label égal à, je vais utiliser Label Wizard, label. Ensuite, à l'intérieur des rondresses , nous devons d' abord passer le muster, qui est la fenêtre racine, puis nous devons transmettre la variable de texte Texte, variable, cheveux, je suis une passe ou un membre variable, qui est un nom ou un prénom ou. Atocoma définiriez-vous la police. Police, je veux utiliser une police aérienne. Avec cela, ma taille de police est de 40. Atracoma définit également la couleur précédente, AG au premier plan et la couleur de notre Et je vais sous-traiter ce fichier. Après cela, vous devez également étiqueter cette étiquette. Pour cela, je vais taper label dot pack. Dans le cadre du processus rond, je vais également demander un petit rembourrage dans la direction YxS, un rembourrage de dix pixels . Je vais configurer ce fichier. Après avoir défini ce fichier, exécutons le terminal d'inode de code. Après avoir lancé le terminal d' inode à code, si je tape quelque chose dans notre champ de saisie, laissez-moi vous montrer mon nom, sinon bonjour tout le monde Vous pouvez voir que chaque fois que je tape du texte, sinon n'importe quel caractère, il imprime le texte dans notre fenêtre à l'aide d'une étiquette. Tout cela est basique à propos de Entry Wizard. J'espère que c'est clair pour toi maintenant. Merci d'avoir regardé cette vidéo, restez connectés pour le prochain studio. 11. Widget de texte get: Bonjour, les gars. C'est bon de te revoir. Encore une fois, je suis de retour avec un autre assistant lié au tutoriel. Et aujourd'hui, dans ce tutoriel, nous allons aborder l'assistant de texte. Il est utilisé pour la saisie multiligne. Dans le cas contraire, cet objectif. L'assistant de texte de Kiner permet à l'utilisateur de saisir ou de saisir plusieurs lignes de Il ressemble à un champ de style bloc-notes et prend en charge le formatage avancé, les balises et le défilement Si je parle de sa syntaxe, nous devons d'abord définir une variable dans notre cas, l'assistant de texte, puis nous devons utiliser cette classe de texte. Ensuite, dans la rondeur, nous devons passer le test, je veux voir la fenêtre principale, puis nous devons passer les options en paramètre Si je parle de ses options, sont toutes des options que nous allons utiliser dans le studio, telles que la hauteur, l' arrière-plan, le premier plan, la police, l'enroulement, le padaxPadi, le relief, la bordure avec Nous connaissons déjà la plupart des options. Commençons par l' aspect pratique et voyons comment utiliser Text Wist. Comme vous pouvez le voir, nous sommes dans l'éditeur de code de mon studio utilisateur, et je crée déjà une fenêtre de base en utilisant la classe TK, et nous avons dit géométrie 400 x 300. Si vous voulez l'augmenter , oui, vous le pouvez. Et si vous voulez changer de dimension, oui, c'est possible, c'est à vous de décider. Maintenant, commençons par créer l'assistant de texte. Par exemple, si nous allons prendre une variable et notre variable est du texte, le texte est égal à je vais appeler text class, celle-ci. Ensuite, à l'intérieur du rond, pour d' abord passer le test et savoir qui est root, je veux le placer dans une fenêtre root Ensuite, je vais passer les options. Tout d'abord, je vais passer une hauteur, hauteur égale à t, une virgule À la ligne suivante, je vais définir le mariage. Avec une largeur égale à l'ourlet, attribuez 40. Ensuite, je vais utiliser une police, une police. Ici, je souhaite utiliser la police Aerial. Donc, à l'intérieur du round plutôt l'intérieur du double code, je vais taper AL. Aérien et je vais passer la taille de police 12. Ensuite, je vais définir pour la couleur ronde, G, G égal à deux dans le double code. Je vais passer la couleur bleue. Bleue. Ensuite, je vais définir la couleur de fond en utilisant BG, BG. Ici, je vais dire que c'est la couleur de fond, jaune clair, jaune clair. Après avoir défini la couleur de fond, je vais utiliser une autre propriété, le rap. Rap, rap, c'est comme ça que je vais terminer avec un mot, un mot dactylographié. Ensuite, je vais changer le style de bordure. Pour cela, je vais me soulager. Soulagement. Dans le cadre du double cours, je vais utiliser le cours en groupe. Virgule. Ensuite, je vais utiliser bordure avec, bordure avec, je vais définir deux. En résumé, nous devons choisir trois options. Aucun, personnage et mot. Ensuite, nous devons le suivre Pour cela, nous devons taper du texte, un point, un pack. À l'intérieur du bris rond, je vais également attribuer un peu de rembourrage, type pad Y, 20 pixels Sinon, dix pixels, c'est à vous de décider. Je vais donc configurer ce fichier. J'ai configuré ce fichier, si j'exécute ce code dans mon terminal, vous pouvez maintenant voir à quoi ressemble notre assistant de texte. Ici, nous pouvons transmettre du texte multi-line-up. Et si vous souhaitez obtenir le texte et l'afficher dans votre terminal, dans ce cas, vous devez créer un bouton. En outre, vous devez définir une fonction qui va extraire le texte. Alors faisons-le. Ici, je vais créer une fonction, Dave et le nom de notre fonction est « Afficher le texte souligné ». Afficher le texte, pour l'instant, ne prendra aucun argument, puis dans cette fonction, nous devons obtenir le texte. Pour cela, nous allons utiliser méthode Git, un certain type de contenu, contenu égal à text point Gate. Ici, nous utilisons la méthode Gate pour obtenir le texte. Ensuite, à l'intérieur des robes rondes , nous devons maintenant définir l'index. Nous allons commencer à partir de quel index nous allons sélectionner le texte. Ici, je vais le sélectionner dès le début. Je veux dire le début de l'index. Je vais donc passer dans le double parcours, je vais passer la version 1.0. Ensuite, après la virgule, à l'intérieur du double plan, je veux aller jusqu'à la fin du caractère Alors passe, passe la fin. Ici, un représente la ligne un et zéro représente zéro caractère. Cela signifie le début de l'index. Si vous sélectionnez deux caractères, vous passez la ligne numéro deux et si vous modifiez la valeur zéro, supposons trois, puis à partir de la ligne numéro deux, le troisième caractère sera saisi. Maintenant, nous devons imprimer les données dans mon terminal. Alors tapez print et à l'intérieur du roundresshir, je vais donner un pourboire Inside the double course, user input Entrée utilisateur ici, acoma, je vais passer la variable Certains types étaient contenus et nous devons maintenant créer un bouton. Chaque fois que nous appuyons sur le bouton, le texte s'affiche dans mon terminal. Ici, je vais créer un bouton et à l'intérieur des presses rondes, nous devons d' abord fournir le muster qui est root Ensuite, nous devons fournir du texte, du texte du bouton, du texte égal pour afficher le texte. Ensuite, nous devons passer la commande qui va déclencher la fonction. commande égale au nom de notre fonction est show text, show under scode Ensuite, je vais l'emballer, l'emballer et, dans l'adresse ronde, je tape pad Y, pad Y, dix pixels, et je vais définir ce fichier Mais avant d'exécuter ce code dans mon terminal, nous devons apporter quelques corrections car nous n'avons pas besoin de le mettre dans un double code. Nous devons supprimer le qd de ces doubles codes, et je vais définir ce fichier Après avoir défini ce fichier, si j' exécute ce code dans mon terminal et que je mets du texte factice dans cette zone de texte. Et cliquez sur un texte court. Maintenant, vous pouvez le voir imprimer les données exactes, nous les collons ici. Il imprime le paragraphe multilien dans mon terminal. Maintenant, le problème est que nous n'avons aucun mot de défilement dans cet assistant de texte. J'ai besoin d'une barre de défilement. Pour cela, nous devons créer la barre de défilement. Créons cette barre de défilement. Avant l'assistant de texte, je vais définir ici la barre de défilement Certains tapent un nom de variable scroll, scroll, scroll, égal à scroll, égal à scroll, égal à barre de défilement. Faites défiler et à l'intérieur des robes rondes, nous passons le test, où nous allons placer cette barre de défilement, qui est placer cette barre de défilement, qui Ensuite, nous devons emballer cette barre de défilement. Un peu de texte, de parchemin, de point, emballage à l'intérieur des robes rondes, ici, nous devons définir le côté. Côté, je vais le déplacer sur le côté droit. C'est vrai. Et nous devons définir le remplissage, le remplissage, et je veux le remplir à Y xs. Donc, pour passer Y. Maintenant, créez cette barre de défilement, nous devons définir cette barre de défilement dans le texte Wiz Pour cela, définissez ici la racine. Je vais définir la barre de défilement. Commande de défilement Y. Pour cela, utilisez cette option, la commande Y stroll égale à l'ensemble de points de défilement. Il va configurer la barre de défilement sur cet assistant de texte. Définissez ce fichier, et je vais définir ce fichier. Ensuite, je vais configurer cette barre de défilement. Pour cela, après avoir intégré l'assistant de texte, je vais essayer scroll dot config scroll dot config dans la commande Rundres, égale à la vue du texte Je vais configurer ce fichier. Après avoir défini ce fichier, si j'exécute ce code dans mon terminal, vous pouvez maintenant remarquer cette barre de défilement Il s'agit de la barre de défilement. Et si je passe une donnée A à faire défiler, vous pouvez maintenant voir cette barre de défilement Si je le fais défiler vers le bas, vous pouvez voir le contenu de la zone de texte. La barre de défilement est très importante pour Text Wizard. J'espère que vous savez maintenant comment utiliser l'assistant de texte dans Kiner. Merci d'avoir regardé cette vidéo. Restez connectés pour le prochain didacticiel utiliser l'assistant de texte dans Kiner. Merci d'avoir regardé cette vidéo. Restez connectés pour le 12. Widgets de message: Bonjour, les gars. C'est bon de te revoir. Encore une fois, je suis de retour avec un autre assistant de restauration lié au tutoriel Et aujourd'hui, dans ce tutoriel, nous allons aborder Masses Wizard. Le Masses Wizard est similaire à l'étiquette, mais conçu spécifiquement pour les longs blocs de texte, contrairement à l'étiquette. J'encapsule le texte automatiquement. qui le rend idéal pour ce type de texte statique multiligne comme une instruction ou un avertissement. Si j'en parle de syntaxe, vous devez utiliser ce message de méthode, puis d'abord, vous devez définir le maître, je veux dire la fenêtre dans laquelle vous allez placer l'assistant de message, puis vous pouvez passer votre texte et ensuite nous passons vos options. Si j'en parle d'options, ce sont toutes des options que nous allons utiliser dans Masses Wizard. Avec un fond de police pour le bas, vraiment PadixPadi encore Justify Justify est utilisé pour l'alignement, et encore pour l'alignement du texte. Commençons donc par la pratique et voyons comment utiliser ces options avec Masses Wizard. Enfin, j'utilise un éditeur de code de studio. Maintenant, laissez-moi vous montrer comment nous pouvons utiliser Masses Wizard. premier temps, je vais définir un message, du texte en masse, certain type, du texte souligné en masse Les masses de texte sont égales à celles de l'intérieur du laiton rond, je vais transmettre un message multiligne Ici, à l'intérieur des robes rondes, je vais taper ce message multiligne Bienvenue dans le didacticiel interdisciplinaire. Cet assistant de gestion des masses enveloppe automatiquement le texte long et ajuste la hauteur pour alimenter le contenu Ensuite, nous allons utiliser le magicien des masses. Pour cela, nous devons définir une variable MSG dans notre cas. Égal au message. Masses Wizard, puis dans le RounderSSF, nous devons définir la fenêtre dans laquelle nous allons placer notre magicien des masses, qui Ensuite, nous devons définir le texte. Texte égal à l'endroit où je vais transmettre le texte variable du message. Ensuite, je vais définir le cannabis. Nous, je vais définir 300, ensuite, je vais définir la police. La police était faite, je veux utiliser une police de zone. À l'intérieur des doubles couches, je vais taper la zone et je vais également définir la taille de la police, ce qui est un piège. Ensuite, après la virgule, je vais définir la couleur d'arrière-plan, BG, arrière-plan, et je vais utiliser le bleu clair Bleu clair. Ensuite, je vais définir la couleur du fonds par un G, et ici, dans le double cours, je vais taper du noir. Ensuite, après cela, je vais styliser le poder. Soly, vraiment Ici, dans le double cours, je vais passer le surélevé, la virgule, puis je vais ajouter un petit Tamponnez les œufs, les œufs, dix, également le tampon Y, également dix. Ensuite, nous devons aligner les masses. Je veux l'aligner à partir de la gauche, certains types justifient dans le cours Dufl, je vais taper let value, et je vais définir ce fichier Après avoir défini ce fichier, nous devons emballer les masses, réserver du type msg masses point pack mthodpack à l'intérieur de la rondresss, ajouter également un petit rembourrage, du type pad Y, passant au pixel . Je vais configurer ce fichier. Après avoir défini ce fichier, si j' exécute ce code dans mon terminal, laissez-moi vous montrer comment exécuter ce code dans mon terminal. Ici, il affiche le message. J'espère donc que vous comprenez maintenant à quoi sert Masses Weizer ? Merci d'avoir regardé cette vidéo, Sadi est là pour le prochain tutoriel 13. Mise en page de l'emballage out: Bonjour, mon garçon. C'est bon de te revoir. Encore une fois, je suis de retour avec un nouveau tutoriel lié à Kiner. Et aujourd'hui dans ce tutoriel, nous allons apprendre la gestion de la mise en page. En gros, Kiner proposait trois principaux gestionnaires de mise en page : pack, greed et taste. Et vous pouvez également imbriquer des mises en page en utilisant un cadre à l'intérieur des cadres. Et aujourd'hui, dans ce tutoriel, nous allons apprendre la mise en page des packs. Maintenant, la question est de savoir quelle est la disposition des packs dans Kinder ? Le gestionnaire de géométrie du pad est l'un des moyens les plus simples de positionner l'assistant dans une aile. Il organise automatiquement l'assistant les uns par rapport aux autres dans l'une des quatre directions suivantes : haut, bas, gauche ou droite. Si je parle d'une syntaxe de base, nous devons taper des assistants. abord, nous devons taper la variable d'assistant a, puis nous devons utiliser point PAC, cette méthode. Ensuite, à l'intérieur du rond, les versets doivent passer les options telles que PadixPady, side, etc. fill. Si je parle de ses options, ce sont toutes des options fournies avec la mise en page du pack. Side, fill, expand, padix et pad Y. Dans l'option intérieure, nous pouvons transmettre un total haut est la valeur par défaut, puis le bas, la gauche ou la droite. Ensuite, nous avons le remplissage. Il va étendre Wizard pour remplir l'espace. Il peut le remplir en s ou en yxS ou les deux. Ensuite, nous devons étendre. Cela permet à l'assistant de s'étendre pour occuper tout espace supplémentaire dans le master de géométrie. Ensuite, nous avons Padix et Padi, et nous les connaissons déjà Commençons par l'aspect pratique et voyons comment nous pouvons utiliser padayout Comme vous pouvez le voir, nous sommes dans l'éditeur de code du studio Magazines, et je crée déjà un fichier Python main point py et nous créons ici la mise en page de base avec une dimension de 300 x 200. Et je fais tourner la boucle principale. Maintenant, je vais ajouter quelques boutons. Il s'agit du premier nom du bouton BTN One. BTM un est égal à, je vais utiliser le bouton de l'assistant. Ensuite, à l'intérieur des arêtes , nous devons passer le nom principal qui est root, puis je vais définir le texte d'un bouton, texte étant égal à un cheveu, je vais taper, je vais taper sa position, qui est le bouton du haut Je vais placer ce bouton en haut de cette fenêtre. Je vais également fournir une virgule entre le nom de la fenêtre et le texte Après cela, je vais fournir une couleur de fond, du type BG. Cheveux de fond, je vais utiliser couleur bleu clair, bleu clair. Bleue. Ensuite, je duplique ce bouton, et je vais le nommer bouton deux, ici et ici, je vais le nommer bouton de levage. Je vais donc supprimer le haut et au lieu du haut, je vais taper, lapbutton. Et je vais aussi changer sa couleur de fond. Je vais le rendre vert clair. Léger, vert clair. Ensuite, je le duplique à nouveau et je vais appeler ce bouton bouton trois, celui-ci est bouton, bouton droit. Et je vais faire en sorte que celui-ci soit rose clair . Je vais configurer ce fichier. Pour configurer ce fichier, je vais maintenant utiliser la méthode pack, la méthode pack layout car nous devons le compresser dans notre fenêtre. Tout d'abord, je vais emballer le premier bouton, sous-tapez le bouton BTN, méthode de mise en page à un point Emballer. Ensuite, à l'intérieur du rond, il est dit : d'abord, je vais utiliser le côté option secondaire et je vais le faire parler Et je vais configurer ce fichier. Changez ce fichier, bouleversez ce fichier, exécutons le code dans notre terminal. haut du code, comme vous pouvez le voir, c'est ici que nous plaçons le bouton du haut. Maintenant, je vais remplir ce bouton sur Xxs. Pour cela, ici je vais taper fill et je vais le remplir dans la direction Xxs. Et je vais configurer ce fichier. Bougez ce fichier, si je réexécute ce code, vous pouvez maintenant le voir toucher le bouton dans la direction de X. En gros, il s'étend sur le dessus parce que nous avons un espace en haut. Maintenant, je vais ajouter un peu de rembourrage. Pour cela, ici, je vais utiliser la propriété pad Y. Pad Y. Il va ajouter du rembourrage dans la direction Y x. Ici, je vais passer dix ans. Je vais configurer ce fichier. Après avoir défini ce fichier, vous ajoutez mon code dans mon terminal. Maintenant, vous pouvez remarquer qu'il y a un peu de rembourrage dessus. Au lieu de dix, je vais en utiliser 20. Et si j'ai écrit ce code dans mon terminal, vous pouvez maintenant remarquer qu'il fournit une lacune. J'ajoute un pad de 20 pixels à YxS. Du haut, il ajoute un rembourrage de 20 pixels et du bas, il ajoute également un rembourrage de 20 pixels Donc pour l'instant, je vais retirer le rembourrage parce que vous le connaissez déjà Je ne vais pas l' expliquer ici. Maintenant, je vais parler d'expansion. Mais avant de parler d'expansion, j'aimerais vous montrer une autre facette. Je vais dupliquer cette ligne. Cette fois, je vais mettre le bouton 2, donc le côté égal à gauche, et je vais me sentir dans la direction YX. De plus, je duplique cette ligne et je vais emballer le bouton 3. Cette fois, je vais placer ce bouton sur le côté droit. C'est vrai. Et aussi, je vais le remplir chez YxS, je vais définir ce fichier Après avoir défini ce fichier, vous avez saisi ce code dans mon terminal, voici comment nous appuyons sur notre bouton et nous étendons nos boutons. Ici, nous développons notre premier bouton à Xxs et ici nous étendons notre deuxième bouton et notre troisième bouton à YxS, nous appuyons sur notre deuxième bouton sur le côté gauche et sur notre troisième bouton sur le côté droit Maintenant, laissez-moi vous montrer un autre exemple avec Expend. Pour cela, je vais publier toutes ces lignes. Je vais mettre cette section dans une commande multiligne. Je tape donc et je vais déplacer ce code dans cette commande multiligne. Laisse-moi te montrer. Et je vais créer un autre bouton. Pour créer le bouton, encore une fois, je vais copier cette variable de bouton, et je vais la coller ici. Et voici notre premier bouton, et celui-ci est le bouton supérieur. Ensuite, je duplique cette ligne ou le bouton deux, et je vais le placer en bas. Je vais également changer sa couleur. Je vais en faire une crème légère. Ensuite, je vais emballer les deux boutons. Pour cela, je vais taper button, BTN. Pour cela, je vais utiliser ce bouton, BTN, bouton un, point, pack, bouton un pack à l'intérieur des robes rondes Ici, je vais d'abord définir le côté, le côté, le haut. Je vais le placer en haut. Ensuite, je vais utiliser la propriété fill, fail, et cette fois, je veux remplir le bouton dans les deux sens, dans les deux sens. Il va remplir le bouton chez YX, c'est aussi xs. Ensuite, je vais m'étendre, étendre, je vais faire en sorte que cela se réalise. Notre condition d'expansion est donc vraie. Veuillez donc définir ce fichier si j' exécute mon code dans mon terminal. Voici à quoi ressemble notre bouton. Remplissez les deux, laissez-les s'étirer horizontalement et verticalement et étendez-les à travers le skinter pour étendez-les à travers le skinter pour partager l'espace supplémentaire avec cet assistant De la même manière, je vais emporter un autre bouton. Donc je mets à jour cette ligne, et cette fois, je ne vais changer que le côté Je vais en faire un bouton. Remplissez les deux et étendez. Après avoir défini ce fichier, si j'exécute ce code dans mon terminal, je vais également changer le nom du bouton. C'est le bouton 2. Après avoir défini ce fichier, si j'exécute ce code dans mon terminal, voici à quoi il ressemble maintenant. Maintenant, que se passe-t-il ici ? Les boutons 1 et 2 s'étendent de manière égale pour remplir l'espace vertical. Remplissez les deux valeurs pour leur permettre de s'étirer horizontalement et verticalement. Maintenant, laissez-moi vous montrer la différence entre Expend Through et Expend Forbs. Pour cela, je vais dupliquer cette section et commenter avant la ligne. Ensuite, ici, je vais utiliser fill it at Xxs. De plus, je vais remplir le bouton deux sur X xs. Cette fois, je vais faire baisser l'une des valeurs. Je vais faire en sorte que la valeur du bouton 1 tombe. Laissez-moi vous montrer comment étendre les chutes. Je vais également changer le côté du deuxième bouton. Je vais le faire parler, et je vais configurer ce fichier. Après avoir défini ce fichier, si j'ai écrit ce code dans mon terminal, vous pouvez maintenant remarquer agrandir, si j'agrandis la taille de la fenêtre, si j'augmente sa hauteur, vous pouvez remarquer le bouton du haut, je veux voir le bouton un, rester à la même hauteur. Même si vous redimensionnez la fenêtre verticalement, dirigez, que vous conservez la même Mais le deuxième bouton, sinon le bouton du bas il est pressé verticalement pour occuper l'espace supplémentaire lorsque la hauteur de la fenêtre augmente cause d'elle, nous l'agrandissons à vrai dire. Et si je fais baisser la valeur des deux, laisse-moi te montrer. Si je fais baisser les deux valeurs , puis que je définis le fichier et que j'exécute ce code dans mon terminal, exécutons le code dans mon terminal. Maintenant, si j'essaie d'agrandir la zone de la fenêtre, vous pouvez voir notre deuxième bouton et le bouton du haut, tous deux fixés à leur place. Il reste à la même hauteur. Si je l'augmente, il reste toujours à la même hauteur. C'est la différence entre expand true et expand false. J'espère que c'est clair pour toi maintenant. C'est tout pour ce tutoriel. Au prochain tutoriel, nous allons apprendre un autre exemple de mise en page. Nous allons en apprendre davantage sur la mise en page en grille. Merci d'avoir regardé cette vidéo Stuned. 14. Mise en page en grille dans tkinter: Bonjour, les gars. C'est bon de te revoir. Encore une fois, je suis de retour avec un nouveau tutoriel lié à la gestion de la mise en page Kinter Et dans ce tutoriel, nous allons apprendre la mise en page KinterGrid Une autre question est de savoir ce qu' est la mise en page KinterGrid ? Le gestionnaire de géométrie de grille organise Wizard dans une structure semblable à une grille de tableau à l'aide de lignes et de colonnes Il vous donne un contrôle précis sur chaque assistant qui apparaît. Vous pouvez obtenir un meilleur contrôle si vous utilisez la disposition en grille. Si je parle de sa syntaxe, il s'agit de la syntaxe de base. Nous devons d'abord transmettre le nom de l'assistant, puis la méthode de la grille à points. À l'intérieur des cuivres ronds, définissez d'abord la position de la ligne, puis définissez la position de la colonne Si nous parlons d'options de grille courantes, elles incluent row column, rowspan, column span, sticky SpadicPadoy , iPadX En utilisant cette option, nous pouvons placer n'importe quel assistant à n'importe quelle position. Ensuite, si je parle du principal avantage de la mise en page en grille, elle est préférable pour la mise en page à partir du style, telle que la connexion à partir d'une calculatrice, etc. Vous pouvez aligner les assistants avec précision à l'aide de lignes et de colonnes et les options persistantes permettent d' aligner l'assistant en lui-même. N'oubliez pas l'une des règles les plus importantes concernant la disposition en grille. Ne mélangez pas l'emballage et le quadrillage dans le même contenant, le même cadre ou la même fenêtre. Commençons donc par la pratique et voyons comment utiliser la disposition en grille. Comme vous pouvez le voir, nous sommes dans mon éditeur de code vis studio et j'ai déjà créé un fichier Python main point Pi. Dans ce fichier Python, je crée la mise en page de base, la disposition de base de l'aile Kiner, et ma dimension de mise en page est de 300 x 150 Maintenant, en utilisant Gridaut, nous allons créer un identifiant à partir de. Je vais donc d'abord définir deux labels. Le premier est pour le nom d'utilisateur et second est appelé mot de passe. Tapez des étiquettes à l'intérieur des robes rondes, je vais passer le nom principal qui est root Je veux le placer dans une fenêtre racine. Ensuite, pour définir le texte, texte à l'intérieur des codes doubles, je vais taper ici le nom d'utilisateur. la même manière, je vais dupliquer cette étiquette et après l'avoir dupliquée, je vais remplacer le nom d'utilisateur par le mot de passe. Et maintenant, je vais positionner les mises en page en utilisant du grain. Pour cela, ici, je vais taper point grit. À l'intérieur de la presse ronde, nous voulons d'abord définir la ligne. Row, ici, je vais attribuer zéro. Je veux le placer en position de ligne zéro. Je souhaite définir la position de départ de l'ARU dans. Ensuite, pour définir la colonne. Colonne également nulle. X signifie que cette étiquette va commencer par le coin supérieur gauche. Ensuite, nous devons définir les types padex et pervy pad, X, ten, virgule, pad Y, cinq. Ici, nous l' associons à cette étiquette. À partir de Xxs, nous attribuons dix pixels et à partir de YxS, nous attribuons cinq la même manière, je vais placer le niveau deux, et je veux le placer de manière à utiliser la grille et à le placer à la règle numéro un, mais à la colonne numéro zéro. Le numéro de colonne est toujours égal à zéro. Et je vais configurer ce fichier. Maintenant, pour définir ce fichier, voyons où il va placer ces étiquettes. Sur cette borne coordonnée, vous pouvez maintenant voir qu'elle joue cette étiquette à cette position abord, il joue le nom d'utilisateur à la ligne zéro et à la colonne zéro, puis il joue le mot de passe à la ligne numéro un, mais à la colonne numéro zéro. Maintenant, essayez de comprendre les lignes et les colonnes. Revenons donc à l'écran. Essayons maintenant de comprendre comment fonctionne la disposition de la grille en ligne et en colonne. Supposons que ce soit toute notre racine Winto, comme je vous l'ai dit, ligne et le numéro de colonne en partant de zéro Si j'utilise la ligne zéro et la colonne zéro, cela placera l'assistant à cette position, à ce seuil. De même, si nous ne changeons pas le numéro de ligne, si je le mets à zéro, mais si nous changeons le numéro de colonne, par exemple un, alors cet élément sera placé à cette position. Mais si nous changeons le numéro de ligne, supposons la ligne numéro deux, mais la colonne numéro un, alors l' assistant sera placé à cette position. Le magicien peut être n'importe quoi. Il peut s'agir d'une étiquette ou d'un bouton de saisie, peu importe. Supposons que si vous souhaitez positionner un bouton à cette position, vous deviez transmettre ligne numéro trois et la colonne numéro trois. Vous pouvez supposer que les lignes fonctionnent dans la direction x et les colonnes dans la direction XX. Selon notre code, nous passons notre première étiquette à cette position. Ici, nous plaçons le nom d'utilisateur et nous plaçons notre deuxième étiquette à cette position. Ici, nous plaçons le mot de passe, puis nous devons prendre le champ à deux entrées Kotal L'un est pour le nom d'utilisateur et je veux le placer à côté. Je veux le placer à droite de cette colonne. Nous devons donc définir la position. Pour le premier champ de saisie, je vais placer la ligne numéro zéro et la colonne numéro un, et pour le deuxième champ de saisie, je vais placer la ligne numéro un, également la colonne numéro un. Revenons-en au codecateur. Maintenant, après avoir atteint le niveau, je vais saisir deux champs de saisie. Ici, je vais taper entry, entry, et d'abord définir la fenêtre où nous allons placer l'entrée et je vais passer root. Ensuite, je duplique cette entrée, et je vais placer notre premier champ de saisie. Comme je vous l'ai dit, je vais le placer juste à côté du nom d'utilisateur. Je vais utiliser la méthode de la grille pour placer le champ de saisie. Tout d'abord, je vais définir la ligne où notre numéro de ligne est zéro, mais notre numéro de colonne est la première colonne. Ensuite, je vais ajouter un petit rembourrage. Je veux ajouter un pad à Y xs, pad, Y, ici, je vais fournir y pixel. Ensuite, je copie cette section et je la place ici. Cette fois, je vais placer le deuxième champ de saisie à côté du niveau deux. Je veux dire mot de passe. Je veux le placer juste à côté du mot de passe. Nous devons donc définir ici la position. Cette fois, je vais utiliser la première ligne, première ligne et la première colonne, et je vais définir ce fichier. Configurez ce fichier. Exécutons maintenant le code dans notre terminal. Exécutez ce code dans notre terminal, comme vous pouvez le voir, c'est là qu'il joue les champs de saisie, droite du nom d'utilisateur et à droite du mot de passe. Maintenant, permettez-moi de vous montrer une chose. La chose la plus importante, c' est l'option collante, collante. Mais avant, je vais réduire certains caractères du mot de passe. Je vais simplement taper pass redéfinir ce fichier et réexécuter le code. Vous pouvez maintenant remarquer l'alignement, l'alignement du contenu. Je veux voir le texte de l'assistant, un alignement central. Nous devons maintenant aligner le texte sur le côté droit. Pour cela, nous devons utiliser l'option adhésive. Essayons de comprendre ce que nous pouvons faire avec les options persistantes. Essayons de comprendre ce qu' est une mise en page collante. Maintenant, notre mise en page ressemble à ça. Dans notre colonne zéro et zéro, nous plaçons nom d'utilisateur, puis nous plaçons les frais d'inscription. Maintenant, le problème, c' est leur alignement. Cet assistant est aligné au milieu de cette cellule, mais je souhaite le déplacer sur le côté droit. Pour cela, nous devons utiliser la propriété adhésive. Si nous utilisons l'option persistante, nous pouvons déplacer cet assistant dans cette cellule, quelque chose comme ça. Ici, nous déplaçons l' assistant d'étiquetage de ce côté. Je veux dire le bon côté. C'est ce que nous pouvons faire avec du bâton. Nous pouvons déplacer le magicien dans cette cellule. En gros, dans la mise en page QuintersGid, chaque cellule ressemble à une boîte, et par défaut, l'assistant se trouve au centre Cette option rémanente est utilisée pour connecter l'assistant à un site spécifique. Si vous souhaitez déplacer l'assistant en haut, vous devez utiliser TapTaln N est l'abréviation de North. C'est assez similaire avec la carte. Comme vous le savez, le haut de cette carte est toujours au nord. Alors la face inférieure est toujours au sud. Et le côté droit est toujours à l' et le côté gauche est toujours à l'ouest. Cela fonctionne de cette façon. Vous pouvez également combiner des directions. Par exemple, si vous utilisez les deux valeurs ensemble, par exemple sticky WE, cela la fera s'égarer horizontalement De même, si vous voulez utiliser cette valeur, sticky Ns, elle sera tracée verticalement Et si vous utilisez Ns Ew, la cellule sera entièrement remplie. Revenons donc au code. Encore une fois, je reviens à mon code de résistance, et cette fois je vais utiliser cette option Tampon Y plus souple, je vais utiliser l'option adhésive. Sticky sticky et ici, je vais utiliser la valeur E, E. Je vais copier la même propriété et la même valeur et je vais les tester dans le libellé deux, et je vais définir ce fichier. Après avoir défini ce fichier, si j'exécute ce code dans mon terminal, vous pouvez maintenant remarquer qu'il a aligné le texte, qu'il a aligné le texte du niveau côté droit, et c'est ce que nous voulons. Créons maintenant le bouton de connexion. Certains tapent bouton assistant et dans les rondes, d' abord pour définir le nom de la fenêtre qui est root, puis nous devons passer le texte du bouton et ici je tape dans le double cours, je tape login Ensuite, en utilisant la mise en page Greed, nous allons coller ce bouton. Tapez cupidité à l'intérieur de la robe ronde, cette fois, je vais utiliser la rangée numéro deux Forma, je veux étendre l'étendue de ce type de colonne, et je veux étendre ce bouton jusqu'à deux colonnes pour en transmettre deux ici. De plus, je vais ajouter un petit appariement à Y xs, pad, Y, pad, Y, y, je vais passer mince Maintenant, il va appuyer sur le bouton jusqu'à deux colonnes. Pour comprendre ce qui s'est passé en gros, je vais ajouter une couleur de fond à ce bouton Donc, le texte du bouton, je vais ajouter le coma, et ici je vais utiliser BG. BG signifie arrière-plan, et pour arrière-plan, je vais utiliser la couleur jaune jaune. Je vais configurer ce fichier. Après avoir défini ce fichier, si j'exécute ce code dans mon terminal, c'est maintenant clair pour vous. N'oubliez pas que si nous ne définissons pas la position de la colonne, mais que nous définissons la position de la ligne, cet assistant placera cet assistant à zéro colonne. Ensuite, je vais ajouter de la valeur adhésive, collante et cette fois, je veux m'étirer. Je veux étirer le bouton horizontalement et je veux occuper deux colonnes. C'est pourquoi je l' étends à deux colonnes de spam. Ici, à l'intérieur des doubles codes pour cela, nous devons passer WE stretch horizontalement. Après cette virgule intraproft je vais définir ce cinq Après avoir défini ce fichier, si j'exécute ce code dans mon terminal, vous pouvez voir le résultat ici. Ici, nous étendons ce bouton jusqu'à deux colonnes. J'espère que le concept est maintenant clair pour vous : comment utiliser disposition en grille pour placer l' assistant à n'importe quelle position. Dans le prochain tutoriel, nous allons parler de l'aménagement des lieux. Merci d'avoir regardé cette vidéo. Restez à l'affût pour notre prochain tutoriel. 15. Mise en page de lieu: Bonjour, les gars. C'est bon de te revoir. Encore une fois, je suis de retour avec un nouveau tutoriel lié à la gestion des fenêtres, et aujourd'hui dans ce tutoriel, nous allons apprendre la disposition des lieux. La question qui se pose maintenant est la suivante : qu'est-ce que la disposition des lieux ? Le gestionnaire de géométrie de position est utilisé pour positionner les assistants de manière explicite à des coordonnées spécifiques ou à une position prête dans leur assistant parent, comme une racine ou un cadre Contrairement au lieu et à la grille qui gèrent automatiquement la mise en page , le placement se positionne manuellement. Ainsi, manuellement, nous pouvons positionner nos assistants à n'importe quelle position en utilisant Xxs xs. Si je parle de sa syntaxe de base, tapez d'abord le nom de l'assistant et nous devons utiliser cette méthode, place. Ensuite, à l'intérieur du rond, il est indiqué que nous devons définir la position X et la position YxS. Vous pouvez également utiliser le positionnement relatif dans la disposition des lieux à l'aide de ces options. X et Y. Si nous parlons de ses options, il est livré avec l'option sb totale X, Y, LX, Y réel avec hauteur et ancre. X représente la position horizontale absolue. Y représente la position verticale absolue. Le X réel représente la position horizontale relative. Ici, nous devons transmettre une valeur comprise entre 0,0 et 1,0 du poids du parent. Mais dans le cas du positionnement horizontal absolu, nous devons utiliser des unités de pixels. De même, nous avons Y, puis nous pouvons définir la hauteur de cet assistant en utilisant ces options et enfin, nous avons une ancre. À l'aide de l'ancre, nous pouvons contrôler l' endroit où l'assistant est ancré. Voici donc les options que nous pouvons utiliser avec la disposition des lieux. Si nous comparons avec d'autres configurations, si vous comparez avec une grille d'emballage et que vous placez ensemble, PAC est facile à utiliser La grille est également facile à utiliser, mais le lieu n'est pas si facile à utiliser. Nous devons le configurer manuellement. Mais si nous parlons de contrôle précis, les places ont le dessus. La mise en page en grille est donc l'une des meilleures méthodes de mise en page de Kiner. Si vous comparez avec pack and place. Maintenant, quand nous devons utiliser la disposition des lieux. Lorsque vous avez besoin d'une mise en page parfaite au pixel près, vous pouvez utiliser la disposition par emplacement. Lorsque vous concevez des interfaces ou des jeux personnalisés, vous pouvez utiliser la disposition des lieux. Mais vous devez éviter de l'utiliser pour des formulaires réactifs ou un redimensionnement dynamique Parce qu'il ne s' adopte pas automatiquement. Si nous parlons de l' ensemble de la conclusion, alors dans la disposition des lieux, vous pouvez positionner les assistants de manière minimale Il prend en charge le positionnement absolu et relatif et utilise codage pour contrôler la manière dont la visite s'aligne sur son point Il peut vous donner un contrôle total, mais il nécessite plus de puissance pour une conception réactive Commençons par l'aspect pratique et essayons de comprendre comment nous pouvons utiliser la disposition des lieux. Enfin, comme vous pouvez le voir, nous sommes dans mon éditeur de code Visual Studio et nous créons ici la mise en page de base. Nous avons défini la géométrie 300 x 200. Je vais maintenant définir un bouton. Je vais donc taper une variable BTN, bouton un, bouton un, égale à, je vais utiliser le bouton Wizard Ensuite, je vais le placer dans un cadre racine, une fenêtre racine. Après cela, je vais définir le texte du bouton, le texte. Au lieu du double cours, je vais taper le premier bouton. Je vais maintenant placer ce bouton. Je vais placer le bouton en utilisant la méthode de disposition des lieux. Je vais taper BTN button point place. Ensuite, à l'intérieur des versets ronds, nous devons définir les Xs et un axe Y. Comme je vous l'ai dit, X représente la position horizontale absolue. Donc ici, je vais taper X égal à, je vais passer 20. À partir du xs, je veux le déplacer de 20 pixels et à partir du YxS, je vais le déplacer de 30 pixels, et je vais sous-traiter ce fichier Après avoir défini ce fichier, si j'exécute ce code dans mon terminal, vous pouvez voir le résultat ici. À partir des XX, il faut un écart total de 20 pixels, et à partir des YX, il faut un écart total de 30 pixels Positionnez précisément n'importe quel assistant dans notre fenêtre. Maintenant, cet exemple concerne le positionnement absolu. Permettez-moi maintenant de vous montrer l'exemple du positionnement relatif. Je vais créer un autre bouton. Disons que je vais dupliquer cette section. Copiez cette section et je vais la coller ici. Alors je vais l' appeler bouton 2. Je vais également changer le nom du bouton deux. Maintenant, au lieu d'utiliser des unités absolues, je vais utiliser des unités relatives. Laisse-moi te montrer. Ici, je vais utiliser RLX wd. Il représente la position horizontale relative, et ici nous devons évaluer entre 0,0 et 1,0 du pourcentage de poids. À partir des XX, je veux appuyer sur le bouton au milieu de ce conteneur Donc je passe donc je vais passer 0,5. la même manière, depuis le YXS, je souhaite attribuer le bouton au milieu de cette page Pour cela, tapez RL Y 0.5. Ensuite, vous devez utiliser une autre propriété appelée ancre. Anchor, et ici je vais utiliser la valeur centrale. Centre. Au lieu de cela, le code unique, centre. Après cela, vous devez également changer le nom du bouton, c'est le bouton deux. Je souhaite configurer ce fichier. Après avoir défini ce fichier, si j'exécute ce code dans mon carminal c'est là que nous plaçons notre bouton au milieu de cette page Nous plaçons le bouton horizontalement et verticalement au centre de cette fenêtre. Maintenant, je veux déplacer ce bouton sur le côté droit. Pour cela, je vais augmenter la valeur du vrai X. Laissez-moi vous montrer. Maintenant, je vais passer la version 0.8 définir ce fichier et exécuter à nouveau ce code. Après avoir exécuté ce code, comme vous pouvez le voir, il déplace maintenant le bouton à droite de cette fenêtre. En utilisant cette option, nous pouvons placer le bouton n'importe où dans notre fenêtre et cela fonctionne relativement, pas absolument. C'est tout pour ce tutoriel. J'espère que vous comprenez maintenant comment nous pouvons utiliser la disposition des lieux. Merci d'avoir regardé cette vidéo, restez connectés pour le prochain tutoriel. 16. Dispositions imbriquées (cadre dans cadre): Bonjour C'est bon de te revoir. Encore une fois, je suis de retour avec un nouveau tutoriel lié à la gestion de la mise en page Kiner Et dans ce tutoriel, nous allons apprendre les mises en page de KInternsted La question qui se pose maintenant est la suivante : que sont les mises en page imbriquées ? Dans Kiner, vous pouvez imbriquer les cadres les uns dans les autres et attribuer à chacun d'eux différents gestionnaires de mise en page, tels que pack , grille ou emplacement Cette approche est utile lorsque vous souhaitez organiser l'interface utilisateur en sections. Appliquez une mise en page différente à chaque section et créez des interfaces complexes, propres et faciles à gérer Si je parle des avantages des mises en page imbriquées, nous pouvons l'utiliser pour une interface utilisateur modulaire Chaque section est propre et séparée. Nous pouvons l'utiliser pour une conception flexible, et il est également très facile à entretenir. Il est plus facile de lire et de mettre à jour des interfaces complexes. Mais il y a une règle très importante dont vous devez vous souvenir. Le voisin mélange, emballe et grille dans le même contenant. Je veux dire le même cadre, mais vous pouvez utiliser pack dans un cadre et grille dans un autre cadre. Si vous parlez de fonctionnalité et d'avantage, la caractéristique la plus importante est le cadre à l'intérieur du cadre. Il est utilisé pour le regroupement logique des assistants. Différents gestionnaires de mise en page appliquent une mise en page différente à chaque groupe, ce qui est idéal pour la conception, la conception Darbod et les interfaces utilisateur à sections multiples Étudions la pratique et voyons comment utiliser les mises en page imbriquées Comme vous pouvez le voir, nous sommes dans l'éditeur de code de mon studio Wizard, et nous créons déjà un fichier Python main point pi et je crée une simple fenêtre Kiner Et j'attribue 400 pixels et 300 pixels de hauteur. Dans un premier temps, je vais créer le cadre 1. Je veux dire le cadre supérieur. Comme vous pouvez le voir ici, je prends un nom de variable top frame et frame égal à deux top frame égal deux, nous utilisons l'assistant de création de cadres et nous le mettons dans une fenêtre racine. Ensuite, nous définissons une couleur d'arrière-plan, couleur bleue de ligne, et nous définissons une hauteur de cent pixels. Ensuite, nous plaçons ce cadre à l'aide du pack Pack Math, et je remplis celui-ci à Xxs. Si je définis ce fichier et que j'exécute ce code dans mon terminal, notre cadre supérieur ressemblera à ça. Revenons maintenant au code. Et maintenant je veux mettre un texte dans le laboratoire supérieur, et maintenant je vais mettre un texte dans le cadre supérieur. Pour cela, ici, je vais utiliser l'étiquette, et je veux placer l' étiquette dans le cadre supérieur, puis je veux attribuer le texte à ce cadre, et le texte de notre étiquette est le cadre supérieur. Ensuite, nous définissons une couleur d'arrière-plan bleu clair , puis je balise cette étiquette et j' attribue un petit rembourrage à YxS C'est notre cadre supérieur. la même manière, je vais créer un cadre inférieur, qui contiendra une disposition en grille à l'intérieur. Ici, je vais créer un cadre inférieur. Le cadre inférieur est égal au cadre et je le place dans une fenêtre racine, puis je définis une couleur de fond gris clair. Ensuite, j'emballe ce cadre inférieur et je le remplis les deux sens et je concrétise cette extension. Maintenant, si je définis ce fichier et que j'exécute ce code dans mon carminal, notre mise en page ressemble Ceci est le cadre supérieur et ceci est le cadre inférieur, et vous pouvez remarquer et vous pouvez remarquer le fond de couleur grise. Travaillons maintenant sur le cadre imbriqué. Nous allons placer un cadre à l'intérieur ce cadre inférieur pour les champs from. Ici, je passe un cadre unique et je commente un cadre imbriqué à l'intérieur, le cadre inférieur pour les champs de départ Ensuite, je vais créer un autre cadre, et le nom de notre cadre provient du cadre. À partir d'un cadre égal à elle, utilisez Frame Wizard, puis je le place depuis le cadre à l'intérieur du cadre inférieur, pas vers la fenêtre racine. J'ai mis ce cadre dans le cadre inférieur. Ensuite, j'attribue une couleur de fond gris clair, identique à celle du cadre deux. Ensuite, j'emballe ce cadre. Ensuite, dans ce NASTTFFrame, je vais ajouter une étiquette et un champ de saisie utilisant Ici, je crée une étiquette et je place cette étiquette dans le cadre de formulaire. Et le texte de notre étiquette est le nom, et le fond de notre étiquette est gris clair. Dans ce cadre de formulaire, nous utilisons ici la méthode de mise en page en grille et nous plaçons cette étiquette. Ensuite, nous créons une entrée, et de la même manière, nous la plaçons dans ce cadre de formulaire et en utilisant la méthode de mise en page en grille, nous plaçons, nous plaçons ce flux d'entrées. Si je définis ce fichier et que j'exécute ce code dans notre terminal, c'est là que nous plaçons le nom, l' étiquette et le flux d'entrées. De même, nous devons faire la même chose pour le mot de passe. Et nous apprenons déjà la méthode de positionnement, comment utiliser les lignes et les colonnes. la même manière, je vais mettre une autre étiquette et le champ de saisie pour l'e-mail, et nous les plaçons tous les deux en utilisant une disposition en grille. Enfin, je vais ajouter un bouton. Je vais ajouter ce bouton dans ce cadre de formulaire. C'est donc un excellent exemple de disposition en grille imbriquée. Et n'oubliez pas que nous ne faisons pas preuve de cupidité et que nous n'agissons pas ensemble. Je tiens à dire qu'à l'intérieur de ce cadre de formulaire, nous n'utilisons pas la cupidité et nous n'agissons pas ensemble Mais vous pouvez remarquer que notre cadre de formulaire fonctionne avec la méthode pack. Je lie celle-ci à la méthode pack, mais à l'intérieur, nous n'utilisons pas méthode pack et la méthode verte ensemble. Nous utilisons uniquement une grille. Donc, dans un premier temps, nous créons un premier cadre, le cadre supérieur. Ensuite, à l'intérieur de ce cadre supérieur, nous avons mis un niveau en utilisant la méthode pack. Ensuite, nous créons un autre cadre. Il s'agit d'un deuxième cadre, celui-ci est pour le bas et celui-ci est pour le cadre inférieur. Et j'emballe également ce cadre inférieur en utilisant la méthode d'emballage. Ensuite, à l'intérieur de ce cadre inférieur, je crée un autre cadre. Mais ici, nous utilisons à nouveau la méthode pack pour placer le cadre de départ dans le cadre inférieur. Ensuite, à l'intérieur de ce cadre de formulaire, nous créons ce formulaire. Mais cette fois, nous utilisons une disposition en grille pour placer l'étiquette, le champ de saisie et les boutons. Donc, pour définir ce fichier, si j'exécute ce code dans mon terminal, voici à quoi ressemble notre mise en page. J'espère maintenant vous faire peur de ce qu'est la mise en page imbriquée. Merci d'avoir regardé ce site vidéo pour le prochain chapitre. 17. Widget de bouton de coche Tkinter: Bonjour C'est bon de te revoir. Encore une fois, je suis de retour avec un nouveau tutoriel. Et aujourd'hui, dans ce tutoriel, nous allons parler de l' assistant de boutons Kiner Check Le bouton de vérification de Kinter permet l'utilisateur d'activer ou de désactiver une option Cela ressemble à une case à cocher dans les formes d'onde. Et si je parle de sa principale caractéristique, elle peut être cochée ou non cochée Si je l'ai cochée, sa valeur devient un et si je la décoche, sa valeur devient zéro Il est utilisé pour plusieurs options indépendantes. Il peut également être lié à une variable pour suivre son état. La variable peut être une variable, une variable de chaîne ou une variable booléenne Permettez-moi de vous montrer un exemple de la façon dont nous pouvons l'utiliser. Comme vous pouvez le voir, nous sommes dans l'éditeur de code de mon studio Visal et ici je crée déjà une fenêtre Kiner de base Maintenant, dans un premier temps, nous devons définir une variable et notre variable est agree où Egrewa est égal à la variable int, Ici, je vais définir tous les index. Ensuite, je vais créer un bouton de vérification. Pour cela, je vais définir une variable et notre variable est d' accord, égale à ici, nous devons utiliser le bouton de vérification. Ensuite, à l'intérieur des presses rondes, nous devons d'abord fournir le nom principal qui est root. Dans quelle fenêtre je vais coller le bouton de vérification. Ensuite, nous devons définir le texte, Stokma je tape, du texte, du texte entre guillemets, je vais passer, j' accepte ce terme Ensuite, nous devons utiliser le paramètre important appelé variable. Donc, pour lier une variable, une variable va stocker l' état de la case à cocher. Il peut s'agir d'une variable de chaîne ou les indices sont variables. Dans notre cas, le héros utilise la variable into, et je vais passer le nom de la variable a grew. Dans notre cas, si nous cochons ce bouton de vérification, il va stocker une valeur et si nous le décochons, il va stocker une valeur nulle Ensuite, nous devons compresser cette variable. Dans la ligne suivante, j'intègre cette variable et j'utilise peu de rembourrage. Sur YxS, je vais définir cette Si je définis ce fichier et que j'exécute ce code dans mon terminal, voici à quoi cela ressemble. Il s'agit simplement d'un bouton de vérification. Et comme vous pouvez le constater, nous ne définissons aucune hauteur à l'intérieur de cette fenêtre. C'est pour ça que ça ressemble à ça. Nous ne définissons pas la géométrie, et je n'en ai pas besoin. Ensuite, je vais définir une fonction qui va afficher la valeur. Pour cela, hemotypetap et nom de notre fonction Ensuite, dans cette déclaration imprimée, avais-je utilisé une condition. Si vous êtes d'accord avec un mot ou si vous obtenez une valeur, alors il imprimera de la triche, sinon, il s' imprimera sans cocher Donc, chaque fois que je coche cette case, elle en envoie une dans cette variable. Il obtient donc une valeur. Il va donc imprimer de la triche. Et si je l'ai décochée, elle remplira la condition et s' imprimera sans la Et pour exécuter la fonction, il faut ici utiliser un bouton. Donc, ici, je vais définir le bouton. Tout d'abord, nous définissons le bouton, puis nous le plaçons dans une fenêtre racine, et voici notre goût du bouton, son état de vérification. Et dans le paramètre commun, j'appelle cette fonction « state », je l'emballe et je la range dans cette fenêtre. Je vais donc définir ce fichier et exécuter ce code dans mon terminal. Pour exécuter ce code, vous pouvez voir la fenêtre ici. Donc, si je clique sur ce bouton, cochez la case État, comme vous pouvez le voir, il s' imprime en clair parce que je décoche cette case à cocher Mais cette fois, si je coche cette case puis que j'appuie sur le bouton, coche État, cette fois, l'impression est cochée. Parlons maintenant des paramètres importants fournis avec cet assistant. Si je parle de son paramètre, il est livré avec du texte et nous le connaissons déjà. Je dois montrer l'étiquette à côté de la case à cocher. Cela est variable, et nous connaissons l'utilisation de la variable. Cela va définir l'état de la case à cocher. Cette valeur active et désactive valeur sur valeur lorsqu'elle est cochée, et la valeur par défaut est celle de valeur lorsque la valeur est déformée et sa valeur par défaut est zéro Par défaut, il affiche un et zéro, mais vous pouvez modifier les options. Laisse-moi te montrer. Encore une fois, je reviens à mon code Visual Studio, et je crée un autre fichier Python destiné à faire Pi. Je vais maintenant définir une variable qui contiendra un état par défaut. Et notre variable est une variable de type giver et c'est une variable de chaîne. Et par défaut, j'ai dit Valeur, non, et c'est une valeur par défaut. Et maintenant je vais créer un bouton de vérification sur Valu et du paramètre value. Et je vais transmettre la valeur oui et la valeur non. Je crée donc ici le bouton de vérification et je place ce bouton de vérification dans cette variable appelée agree. Et j'appuie sur ce bouton de vérification dans une fenêtre racine et je dis ce texte, j'accepte ce terme, puis je définis la variable agriY comme vous pouvez le voir, c'est une variable de chaîne Maintenant, la valeur devient oui. Ici, j'ai dit la valeur « oui » et la valeur « non ». Si nous cochons la case, elle passe oui à cette variable partout, et si nous la désélectionnons, elle passe ensuite non, et c'est la valeur par défaut Nous devons donc créer une fonction qui va imprimer la valeur dans notre terminal. Ensuite, je vais définir une fonction. Et le nom de notre fonction est show state. Il va imprimer la valeur actuelle et ici vous obtenez la valeur en utilisant la méthode de la porte Porte à points Egywere. À partir de cette variable, nous obtenons le résultat. Ensuite, nous devons définir un bouton, ce bouton déclenchera la fonction. Je définis donc ici le bouton. Ce bouton va déclencher cette fonction afficher l'état, et le texte de notre bouton est Vérifier l'état. À l'intérieur de ce bouton, nous appellerons la fonction qui va imprimer la valeur actuelle, afficher l'état. À vous de configurer ce fichier, si je lance ce code dans mon aminal maintenant, si je décoche cette case à cocher et que je clique sur Vérifier l'état, il s'imprime, la valeur actuelle est non car c'est la valeur par défaut Mais si je coche cette case puis que je clique sur ce bouton, vous pouvez maintenant le voir imprimer la valeur actuelle, oui Si je clique à nouveau dessus, il affiche « oui ». C'est l'utilisation de la valeur et du paramètre de valeur dans le bouton de vérification. Permettez-moi maintenant de vous montrer un autre exemple avec plusieurs boutons de vérification. Voici donc notre fenêtre simple de base, et cette fois, je vais vous donner l'exemple d'un bouton à cocher multiple. Dans un premier temps, nous devons définir les variables qui vont contenir l'état. Donc, ici, je vais définir un total de trois variables. Et aussi, je vais définir la valeur par défaut, non. Ce sont les trois variables, Python ware, Java et C plus Y. Et ce sont toutes des variables de chaîne Et par défaut, leur valeur est non. Et pour chacune des variables, je vais créer le bouton de vérification. premier temps, je vais créer le bouton de vérification pour Python v. Check button, et je le teste dans une fenêtre racine, et notre texte est Python. Alors très bien égal à Python Ware et la valeur est yes, et Ovalue est no Et ici, nous utilisons la méthode pack pour emballer ce bouton de vérification. Et j'ai choisi le côté ouest. Je veux dire, le côté gauche, le côté gauche de cette fenêtre. la même manière, nous devons créer deux autres boutons de vérification. Je définis donc ici deux autres boutons de vérification pour les étoiles Java et Sitlus Ensuite, nous devons créer une fonction qui affichera tous les identifiants des boutons de vérification. Je vais donc définir ici une fonction appelée show selected. Et d'abord, il va imprimer ce message. Vous aimez ces langues ? Ensuite, il va imprimer leurs mers. Si vous l'aimez, il s'imprimera, et si vous ne l'aimez pas, il s'imprimera, non. Ensuite, nous devons créer un bouton. Ils vont déclencher cette fonction. Celui-ci. Je vais déclencher cette fonction, afficher la sélectionner, et je vais définir ce fichier. Après avoir défini ce fichier, si je lance le code dans mon terminal, vous pouvez voir ici les options, Python Java et C plus plus À partir de ces trois options, je vais vérifier Java. Je n'aime pas Python et C plus plus. Donc, si je clique sur ce bouton, que je vérifie la sélection, comme vous pouvez le voir sur mon terminal, je commence par imprimer, aimez-vous ces langues ? Pour Python, c'est un non. Pour Java, c'est oui, et pour C plus, encore une fois, il imprime, non. Et si je vérifie toutes les valeurs, appuie sur le bouton. Maintenant, tous les statuts deviennent « oui ». C'est ainsi que nous pouvons utiliser plusieurs boutons de vérification. J'espère que le concept est maintenant clair pour vous. Et si je parle de ses cas d'utilisation, il est utilisé pour les termes et conditions convenus , en sélectionnant des fonctionnalités ou des préférences, réglant les options, les notifications par diapositives, le mode fléchette, quotien à choix multiples avec plusieurs réponses correctes Ce sont les principales utilisations de l'assistant de vérification des boutons. J'espère que c'est clair pour toi maintenant. Merci donc d' avoir regardé cette vidéo, Syuned pour notre prochain studio 18. Widget Radioboutton Tkinter: Bonjour, c'est bon de te revoir. Encore une fois, je suis de retour avec un nouvel assistant Kinter lié au didacticiel Aujourd'hui, dans ce tutoriel, nous allons parler de l'assistant de boutons KinterRadio. Le bouton radio de Kinter permet à l'utilisateur de sélectionner une option dans un groupe C'est comme les boutons radio dans les formulaires de tableau. Si je parle de sa fonctionnalité clé, elle est utilisée lorsque vous demandez à l'utilisateur de ne choisir qu'une seule option parmi plusieurs choix. N'oubliez pas que tous les boutons radio associés partagent la même variable. Habituellement, nous utilisons une chaîne invariable, et chaque bouton a une valeur unique qui est stockée dans cette variable lorsqu'il est sélectionné Pour le comprendre clairement, étudions la pratique. Comme vous pouvez le voir dans mon éditeur de code Visual Studio, je crée un fichier Python main point pi et je crée la mise en page de base du Kindle. Je vais maintenant définir une variable de chaîne et notre variable est Zenker Zender égale à une variable de chaîne Ensuite, je vais définir une valeur par défaut pour cette variable de chaîne. Pour définir la valeur par défaut de cette variable, nous utilisons la méthode set. Donc Ty Zenda a défini Round Bess, j'utilise cette dernière valeur par défaut mâle, puis je vais créer les boutons radio Je souhaite donner à l'utilisateur plusieurs options pour sélectionner l'une d'entre elles. Notre premier bouton radio est destiné aux hommes. Pour créer le bouton radio, tapez d' abord le bouton radio, puis à l'intérieur des rondes pour passer la fenêtre dans notre racine de cas, puis vous pouvez définir le texte de ce bouton radio. Il s'agit d'un texte plat de ce bouton radio. Vous devez ensuite définir la variable. Dans notre cas, variable égale à Zender, nous disons également la valeur de ce bouton radio, qui est masculin Sur ce, j'ai placé ce bouton radio dans notre fenêtre. Si nous sélectionnons ce bouton radio, il va définir la valeur de cette variable. Par deiful, vous pouvez le voir, nous utilisons la valeur masculine, la même vue Je vais maintenant créer un autre bouton radio pour les femmes. Comme je vous l'ai dit plus tôt, tous les boutons radio partagent la même variable. Dans notre cas, Zender et chaque bouton ont une valeur unique. Dans notre cas, homme et femme, et cela est stocké dans une variable lorsqu' ils sont sélectionnés. Maintenant, je veux peindre la valeur sélectionnée dans notre terminal. Pour cela, je vais définir une fonction et notre fonction N est Afficher la sélection. À l'intérieur des robes rondes ici, j'imprime une sélection de Zender atacma Ensuite, j'obtiens la valeur de cette variable en utilisant la méthode Gate. De plus, pour déclencher la fonction, nous devons créer un bouton. Donc, ici, je vais créer un bouton, et je vais le placer dans une fenêtre racine et notre bouton accepte un envoi. Et ici, en utilisant un paramètre commun, nous appelons cette fonction, afficher la sélection, et je place ce bouton dans notre fenêtre. Donc, si je définis ce fichier et que j'exécute ce code dans notre terminal, exécute ce code dans notre terminal, vous pouvez voir qu'il fournit deux boutons radio. Par défaut, il sélectionne le bouton radio mâle. Si je sélectionne le bouton radio féminin puis que j'appuie sur Soumettre, vous pouvez voir le résultat sélectionné Zinder femelle la même manière, si je sélectionne le bouton radio mâle et que j' appuie sur le bouton d'envoi, maintenant il imprime le Zinder mâle sélectionné Parlons maintenant des paramètres importants. Si je parle de son paramètre, il est livré avec un total de six paramètres, tels que la variable de texte, la valeur, la commande, l'état et l'indicateur activé. À l'aide de la commande, nous pouvons appeler une fonction lorsque la sélection est modifiée. En utilisant l'état, nous pouvons désactiver le bouton, sinon le bouton normal. Lorsque l'indicateur est activé, il est essentiellement utilisé pour l'IE avancée. Maintenant, laissez-moi vous montrer un autre exemple où je vais vous montrer comment utiliser plusieurs options avec une variable partagée. En utilisant une seule variable, je souhaite fournir un total de trois options, laissez-moi vous montrer comment. Encore une fois, je reviens à mes visites dans votre éditeur de code, et je crée ici un autre fichier Python manto point Pi Je vais maintenant vous montrer plusieurs options avec la variable partagée. Donc, d'abord, je vais définir une variable et je vais définir une valeur par défaut et je vais définir une valeur par défaut pour cette variable. Le nom de notre variable est donc choice, et c'est une chaîne de caractères, et j'ai défini une valeur par défaut, qui est l'option 1. Après cela, je vais créer un total de trois boutons radio. Ici, je crée un total de trois boutons radio avec le même choix de variable, et nous proposons des valeurs différentes pour les options 1 , 2 et 3. Si vous souhaitez imprimer la valeur, vous devez créer une fonction pour imprimer la valeur dans votre terminal. Je crée cette fonction et j'obtiens la valeur de ce choix de variable. Nous devons maintenant créer un bouton qui va appeler la fonction. Ici, je crée ce bouton. Vous pouvez maintenant remarquer que nous avons au total trois boutons radio utilisant la même variable, et nous pouvons donc fournir un total de trois options pour cela. Avant de configurer ce fichier, je vais modifier l'instruction d'impression. Je vais sélectionner la fin de l'option sélectionnée. Je vais configurer ce fichier. Après avoir défini ce fichier, si j'exécute ce code dans un terminal, vous pouvez voir ici les options. Si je **** la deuxième option et que j' appuie sur le bouton Soumettre, vous pouvez voir l'option deux sélectionnée. Un dimère si je sélectionne le troisième, il imprime l' option trois sélectionnée Pour un DIMO, cela fonctionne pour la première option. Maintenant, vous vous demandez peut-être à quoi cela sert de créer un sélecteur de taille de pizza en l'utilisant Laissez-moi vous en montrer la démonstration. Dans cet exemple, je voudrais vous donner le cas d'utilisation pratique de plusieurs boutons radio. Ici, nous allons créer un sélecteur de taille de pizza. Tout d'abord, je vais définir une variable et nom de notre variable est la taille de la pizza. C'est la même chose qu'une variable de chaîne. Ensuite, je veux imprimer une étiquette. Ici, je vais imprimer une étiquette et le texte de notre étiquette est « Sélectionnez la taille de la pizza » et « Méthode d'emballage J'emballe cette étiquette dans cette fenêtre. Ensuite, je vais créer plusieurs boutons radio. Ici, je crée les multiples radiotans pour les petites, moyennes et grandes tailles, et j'utilise la même taille de pizza variable pour stocker la valeur sélectionnée Après cela, comme vous le savez, nous devons créer une fonction qui va imprimer le résultat dans notre terminal. Ici, je vais taper dap show size, imprimer la taille de pizza sélectionnée point Gate et il va obtenir la valeur actuelle à partir de cette variable Vous devez également créer un bouton qui déclenchera cette fonction. Je crée donc ici le bouton qui va commander cette fonction indique la taille. Et ici, je passe le texte et pour le texte du bouton, j'utilise Wade maintenant Pour exécuter ce code dans notre terminal, vous pouvez voir ici la fenêtre. Par défaut, il sélectionne tous les atos car nous ne définissons pas la valeur par défaut pour cela. C'est pourquoi il sélectionne le petit, le moyen, le grand, le tout. Maintenant, je veux sélectionner uniquement la grande option et j'en sélectionne une grande. Sélectionnez l'option Grand, si j'appuie sur Water maintenant, comme vous pouvez le voir sur l'impression de notre terminal, sélectionnez-la en grand format. C'est donc l'une des utilisations du radiobton kinder. Pour créer le radiobden, tapez simplement le bouton radio et à l'intérieur de celui-ci, vous devez passer le paramètre Après cela, vous devez emballer le radiobden. Si j'en parle de cas d'utilisation courants, il est utilisé pour détecter le sexe, groupe d' âge ou la sélection de règles utilisateur. Il est également utilisé pour les quiz ou les réponses correctes uniques. Également utilisé pour les sélecteurs de thèmes tels que light dark et system. Nous pouvons également l'utiliser pour la sélection de la langue. J'espère que vous savez maintenant à quoi sert l'assistant des boutons radio. Merci d'avoir regardé cette vidéo Sdune pour le prochain tutoriel 19. Widget de boîte de liste Tkinter: Bonjour, les gars. C'est bon de te revoir. Encore une fois, je suis de retour avec un nouveau tutoriel lié à Kiner Advanced Wizard Aujourd'hui, dans ce tutoriel, nous allons apprendre Kiner Liz box La zone de liste Wizard de Kinder est utilisée pour afficher une liste d'éléments En gros, il permet à l'utilisateur de sélectionner une ou plusieurs options. Si je parle de sa principale caractéristique, vous pouvez autoriser la sélection unique ou multiple. L'élément peut être ajouté, supprimé ou modifié et il est utile pour afficher les options, le menu, les fichiers, etc. Sans trop parler, permettez-moi de vous donner un exemple. Comme vous pouvez le voir, nous sommes dans mon éditeur de code Salt Studio et je crée déjà une fenêtre de base en utilisant inter. Dans un premier temps, je vais créer une boîte de liste. Pour créer une zone de liste, je vais prendre une variable, qui est LB, least box. liste égale à, nous devons taper List box, puis dans le processus rond, nous devons passer le nom de la fenêtre dans laquelle nous allons placer la zone de liste dans notre racine de cas. Ensuite, une par une, je vais insérer les données. abord, je vais insérer son numéro d'index, puis je vais insérer les données réelles. Ici, je vais insérer une donnée. taper notre variable B, insérez un point dans le ronde*****. Tout d'abord, nous devons fournir le numéro d'index de cette zone de liste Ensuite, nous devons fournir la valeur. Dans notre cas, Python. De la même manière, je vais en ajouter trois autres sous forme de données. Voici donc ici pour passer Java au numéro deux, C plus plus au numéro trois et JavaScript au numéro quatre. Après cela, créez la zone de liste, également dans le pack de liste. Tapez donc b Dernière case point PACK. Maintenant, après avoir défini ce fichier, si j'exécute ce code dans mon terminal, laissez-moi vous montrer à quoi ressemble notre zone de liste. Créons maintenant une fonction qui va imprimer l' élément de liste Acti sélectionné dans notre terminal Ici, je vais définir une fonction et le nom de notre fonction est show selection. Ensuite, dans cette fonction, nous devons identifier l'élément sélectionné. Je voudrais indiquer quel élément est actif. Pour cela, je vais définir une variable appelée selected puis depuis la liste déroulante, nous obtenons l'élément activé Supposons que si je clique sur C plus, cela devient actif. Il va sélectionner l'élément actif. Ensuite, je vais imprimer la valeur de l'élément actif. Ici, je vais taper, imprimer, sélectionner, et je vais passer la variable, la sélectionner. Ensuite, il ne reste plus qu'à créer un bouton qui va déclencher la fonction. Ici, je vais créer un bouton et je vais le mettre dans une fenêtre racine et notre bouton s'affiche. Ensuite, si je sous-traite ce fichier et que j'exécute ce code dans mon arminal sélectionne l'un des éléments de la liste tels que Java et que je clique sur Afficher Vous pouvez maintenant voir le terminal imprimer. Java est sélectionné. De même, si je sélectionne Java Script puis que j'appuie sur Afficher, vous pouvez maintenant le voir imprimer, JavaScript est sélectionné. Parlons maintenant du paramètre que nous pouvons utiliser avec cet assistant. Ce sont les paramètres que nous pouvons utiliser avec cet assistant, tels que la hauteur. Ils vont afficher le nombre de lignes visibles, puis sélectionner le mode. C' est le plus important. Et il est doté de différents modes de sélection tels que navigation unique, multiple ou étendue. Ensuite, nous avons le fond et la couleur du forum. Ensuite, nous avons la sélection des exportations. Si je parle des options du mode de sélection des boîtes de liste, le mode de sélection détermine le nombre d'éléments que l'utilisateur peut sélectionner et la manière dont il peut les sélectionner. Si je parle des modes, il est proposé en quatre modes différents : navigation unique, navigation multiple et étendue. Si je parle de leur comportement, un seul utilisateur ne peut sélectionner qu'un seul élément par Kiki Naviguez. Comme un single, il permet de cliquer, de faire glisser ou de parcourir la sélection. Multiple. L'utilisateur peut sélectionner plusieurs éléments en cliquant sur chacun d'eux séparément. Étendre. L'utilisateur peut sélectionner des plages en utilisant Shift et Control. Nous connaissons déjà le single. C'est une option différée, mais maintenant je vais vous montrer l' option du mode de sélection multiple. Revenons à l'éditeur de code. Encore une fois, je reviens à mon mangeur de code Visual Studio et je crée une fenêtre de base simple premier temps, je vais créer une zone de liste, LB LB étant égal à boîte de liste et je vais mettre le moins de cases dans une fenêtre racine et ici j'utilise le mode de sélection multiple. Nous pouvons maintenant sélectionner plusieurs éléments de liste. Maintenant, je vais définir un tableau, sinon une liste, qui contiendra plusieurs langues. Je vais définir un langage variable et insérer cette liste, ici je passe le nom de plusieurs langages de programmation tels que Python, Java, C plus plus, Java Sweep, Go Maintenant, nous devons mettre nom de tous les langages de programmation dans cette case minimale. Pour cela, nous allons utiliser une boucle à quatre boucles. Pour Lang dans les langues, puis insérez la boucle Fur ici, nous utilisons la méthode d'insertion Le plus petit point de la case Insérer, d'abord , nous devons définir l'index, puis nous devons définir la langue. Ici, N représente un indice spécial. Cela signifie ajouter à la fin de la liste et représenter la langue actuelle. Et cette méthode va ajouter les éléments de la liste un par un dans cette zone de liste avec leur numéro d'index. , je vais étiqueter cette zone de liste, Ensuite, je vais étiqueter cette zone de liste, puis b point pack, nous devons créer une fonction qui va imprimer les éléments sélectionnés. Pour cela, je vais définir une fonction, et le nom de notre fonction sera affiché en mode sélectionné. Ensuite, dans cette fonction, nous devons extraire les indices. Pour cela, je vais définir une variable appelée indices, des indices égaux à listbox dot car selection La méthode de sélection des voitures a écrit un tuple d' indices des éléments actuellement sélectionnés Ensuite, en utilisant une boucle à quatre boucles, nous devons extraire les éléments sélectionnés. Je vais définir une variable d'éléments sélectionnés égale à l'intérieur de la résine carrée Ensuite, à l'intérieur du carré se trouve I dans les indices, case point gate I. En gros, il s'agit d'une compréhension de liste utilisée pour obtenir la valeur réelle des éléments sélectionnés à partir de la zone de liste Kinker Supposons que les utilisateurs sélectionnent Python C plus go. Dans ce cas, cela va stocker les trois valeurs, Python C plus plus, aller et renvoyer le résultat. Ensuite, nous devons imprimer les éléments sélectionnés dans notre terminal. J'utilise donc cette déclaration imprimée. Nous avons maintenant besoin d'un bouton qui va déclencher cette fonction. Je crée ce bouton et je vais configurer ce fichier. Après avoir défini ce fichier, si j'exécute ce code dans mon carvinal, nous pouvons maintenant sélectionner plusieurs éléments Supposons que je veuille sélectionner Go. Sur ce, je veux sélectionner Java et Python. Maintenant, si je loue le bouton de soumission, vous pouvez maintenant voir que vous avez sélectionné Python Java et c'est parti. C'est ainsi que fonctionnait la sélection multiple, et maintenant vous décidez de présélectionner les identifiants. Vous pouvez donc le faire en utilisant la méthode de sélection. Laisse-moi te montrer. Supposons que par défaut, vous souhaitiez sélectionner Python et C plus plus. Pour cela, vous devez utiliser méthode de sélection de points list Bows, puis vous devrez transmettre le numéro d'index , quelque chose comme ça. Ici, je sélectionne zéro index, c'est-à-dire Python. Je sélectionne également l'indice numéro deux qui signifie C plus plus. À l'aide de cette méthode, la sélection est définie. Maintenant, si je définis ce fichier et que j' exécute ce code dans mon terminal, vous pouvez remarquer qu'il sélectionne déjà Python et C plus plus. Maintenant, si je clique sur le bouton d'envoi, vous pouvez voir dans mon terminal que vous sélectionnez Python et C plus plus. Vous pouvez également sélectionner d'autres options avec cela. Supposons que je veuille sélectionner G et Java. Ensuite, je vais cliquer à nouveau sur le bouton d'envoi. Ensuite, il imprime les éléments sélectionnés, Python, Java, C plus plus, go. C'est ainsi que nous pouvons utiliser la sélection multiple avec la zone de liste. Voyons maintenant comment ajouter des éléments à une case minimum, comment supprimer des éléments et comment supprimer tous les éléments ensemble. Comme vous pouvez le voir, ici je crée une fenêtre simple et lui je crée une zone de liste. Dans cette liste, nous avons deux éléments, Python et Java. Si j'exécute ce code dans mon terminal, vous pouvez voir le résultat. Dans notre zone de liste, nous avons deux éléments, Python et Java. Maintenant, je vais créer une fonction qui va ajouter, ils vont ajouter un nouvel élément de liste à cette liste. Mais avant de créer un champ de saisie, ils vont prendre l'entrée. Ici, je crée une entrée de champ de saisie, nous la plaçons dans une fenêtre racine et nous emballons ce champ de saisie. Ensuite, je vais définir une fonction et notre nom de fonction est Dave at IT. Ensuite, dans cette fonction, je veux extraire la valeur de cette entrée. Dans cette fonction, je vais définir une variable appelée IM. Et article égal à la porte d'entrée. Ainsi, quelle que soit la valeur que vous passez dans ce champ de saisie, nous pouvons stocker cet élément variable dans cette fonction. Ensuite, nous devons définir une condition IP. Si notre champ de saisie n'est pas vide , tapez l'élément I, s'il n'y a pas de valeur dans cet élément, alors dans cette condition IP, je souhaite insérer l' élément dans la zone de liste. Pour cela, tapez la méthode d'insertion de points dans la zone de liste. Tout d'abord pour définir la fin, puis pour définir l'article. E représente le numéro d'index. suffit d'insérer l'élément dans cette zone de liste, également unique pour supprimer le champ de saisie. Nous devons vider le champ de saisie. Pour cela, je vais taper le point d'entrée D à l'intérieur du tour, alors que je veux supprimer le caractère de l'index zéro à la fin. N'oubliez pas qu'au lieu d'utiliser un numéro d' index, nous utilisons ici A. En gros, A représente une constante. Cela signifie ajouter au dernier index. Donc, quelle que soit la valeur que nous transmettons, elle sera ajoutée au dernier index Ensuite, nous devons créer un bouton. Nous devons créer un bouton qui va déclencher la fonction. Ici, je vais définir le bouton, le bouton et je le place dans une fenêtre racine et le texte de notre bouton se trouve, et j'appelle cette fonction élément, et j'emballe ce bouton. Après avoir défini ce fichier, si j' exécute ce code dans mon terminal, vous pouvez maintenant voir qu'il y a un exploit d'entrée. Maintenant, je veux ajouter un autre langage de programmation, puis je vais appuyer sur le bouton Ajouter. Après avoir cliqué sur le bouton Ajouter, vous pouvez maintenant voir la zone de liste, elle ajoute la langue Go à la fin. Et de la même manière, vous pouvez ajouter n'importe quoi. Supposons que cette fois je veuille ajouter C plus, C plus plus. Si j'appuie sur le bouton Ajouter, comme vous pouvez le voir, ajoutez C plus plus. C'est ainsi que nous pouvons ajouter un élément de liste à notre zone de liste. Maintenant, laissez-moi vous montrer comment supprimer des éléments de liste de notre zone de liste. Mais je vais dupliquer cette ligne et au lieu d'utiliser Java, je vais ajouter C plus plus. Donc, par défaut, il va ajouter trois éléments dans notre zone de liste. Maintenant, pour supprimer les éléments, nous devons créer une fonction, et le nom de notre fonction est Supprimer sélectionné. Ici, je vais définir la fonction de suppression sélectionnée. Ensuite, dans cette fonction unique, sélectionnez les éléments. Je définis une variable appelée selected et sélectionnée égale à listbox dot car selection Comme je vous l'ai dit tout à l'heure, il a écrit une liste d'indicus sélectionnés Si je sélectionne C plus et Python, cela créera un tapel et le stockera dans cette variable Après cela, je vais utiliser une boucle à quatre car je suis sélectionnée à l'envers, puis à l'intérieur de cette boucle à quatre boucles, je veux supprimer l'élément de la liste. méthode de suppression des limites de liste dans les rondeurs que je fournis I. Maintenant, la question est de savoir pourquoi j'utilise la méthode inversée Il est essentiellement utilisé pour éviter les fluctuations d'indice. Ceci est très crucial car la suppression depuis la fin évite de perturber la position d'index des éléments restants Ensuite, nous devons créer un bouton. Cela va déclencher cette fonction de suppression sélectionnée. Ici, je vais définir le bouton. Supprimer la sélection, et cela a déclenché cette fonction, supprimer la sélection. Et je vais configurer ce fichier. Après avoir défini ce fichier, si j'exécute ce code dans mon terminal et que je sélectionne l'un des éléments tels que Java et que je préfixe la suppression sélectionnée, comme vous pouvez le voir, l'élément est supprimé de la zone de liste De plus, si vous souhaitez ajouter l'élément, tapez simplement JAVA et ajoutez, puis appuyez sur le bouton. Et encore une fois, ajoutez le Ib en dernier à la fin de la liste. Maintenant, laissez-moi vous montrer comment supprimer tous les éléments en même temps, comment effacer le moins de cases possible. Et c'est très simple. Il suffit de définir une fonction et le nom de notre fonction est ARO. Ensuite, dans cette fonction, listbox dot Delete d'abord, vous devez définir le numéro d'index à partir duquel vous souhaitez supprimer Je passe zéro car je veux tout supprimer. J'ai commencé à partir de l'indice zéro, puis vous devez passer la position finale de cette liste. Après cela, vous devez créer un bouton qui appellera cette fonction « clear ». Je crée ce bouton et cela va appeler la fonction KR. Donc, prédéfinissez ce fichier si j'exécute ce code dans mon terminal et que je clique sur le bouton KRL, toutes les valeurs de la zone de liste seront effacées Nous pouvons maintenant ajouter un nouvel élément de liste. Vous pouvez également supprimer cet élément de liste. Vous pouvez également effacer l'élément de la liste. Le concept est maintenant clair pour vous. Et si nous parlons des cas d'utilisation courants de la zone de liste, elle est utilisée pour sélectionner plusieurs fichiers. Choisissez des éléments dans une longue liste sans entrées à options multiples, sélecteur de contenu dynamique et menu J'espère donc que maintenant c'est clair pour vous, nous pouvons utiliser List Box Wizard. Merci donc d' avoir regardé cette vidéo Syuned pour le prochain tutoriel 20. Combobox (via ttk) dans Tkinter ter: Bonjour, les gars. C'est bon de te revoir. Encore une fois, je suis de retour avec un autre tutoriel lié à Kiner. Aujourd'hui, dans ce tutoriel, nous allons apprendre un autre magicien qui s'appelle Combo Box. La question est de savoir ce qu'est Combo Box ? La boîte de dialogue Kitk point est un assistant de liste déroulante issu du J'ai envie de les dire Cinter. Il permet à l'utilisateur de choisir un seul élément dans une liste d'options prédéfinie. C'est assez similaire avec le tag timus select. En gros, il vous offre une option déroulante, et pour utiliser Combi Box, vous devez importer le module Combox depuis TTk depuis Tinter Si nous parlons de sa fonctionnalité clé, liste déroulante avec saisie semi-automatique Il peut être modifiable ou en lecture seule provient du module TiTiK, il a donc un look moderne Maintenant, laissez-moi vous montrer la syntaxe de base sur laquelle nous pouvons créer une boîte Combi. Dans un premier temps, nous devons importer Tiki. Depuis Kiner, je souhaite importer le module Tik. Ensuite, nous devons importer Combi Box. Nous devons donc l'importer depuis le module Quinta point Kitk de Quinta Dot TK, importer Combi Box Après avoir importé nos modules nécessaires, je vais créer une fenêtre racine. Tapez donc root égal à TK. Ici, j'utilise la classe TK pour créer une variable d'instance. Ensuite, je vais créer une boîte de liste déroulante. Pour cela, je vais définir une variable et le nom de notre variable est combo. Comgo égal à ici, je veux créer une boîte à options. À l'intérieur de cette zone de liste déroulante, d' abord dans , puis dans le cadre du processus de sélection, nous devons indiquer dans quelle fenêtre nous allons placer la boîte de liste déroulante. Ensuite, pour parier les vds de la boîte à options. La valeur est égale à I list, et ici je passe Python, Java, Citusts et Après cela, nous devons emballer , nous devons emballer cette boîte combinée. Combo point pack, puis nous devons exécuter la boucle principale Stitght root, point point Minus Je vais créer une boîte de combinaison de base Si j'ai ce code dans mon terminal, vous pouvez voir le résultat ici. Il propose une option déroulante. Vous pouvez voir l'érosion Si je clique dessus, vous pouvez voir les valeurs, Python, Java, citrus dus et JavaScript Il s'agit d'une boîte combinée simple et basique. À partir de là, vous pouvez sélectionner n'importe quelle annonce. Ensuite, je veux imprimer la valeur de la zone de liste déroulante dans notre fenêtre à l'aide du niveau. Alors allons-y. Ensuite, je vais lui attribuer un titre. Je crée la variable d'instance, je vais créer un titre intitulé Comma bonks demo. De plus, je vais ajouter un peu de rembourrage lorsque j'emballerai cette boîte combinée Donc, pad Y est égal à TM. Et si vous voulez attribuer une sélection par défaut, supposons dans notre cas Java, je veux sélectionner par défaut par défaut, je veux sélectionner Java. Dans ce cas, vous devez taper combo point, Cgo point current À l'intérieur de la robe ronde, vous devez passer le numéro d'index. Voilà, je vais en passer une. Il va sélectionner le premier index, et comme vous pouvez le voir sur un index, nous avons Java. Par défaut, il va sélectionner le Java. Je vais les remplacer par cinq. Ensuite, je vais créer une étiquette vide à cette position. Niveau égal au niveau, je veux placer ce niveau dans une fenêtre racine, et comme vous pouvez le voir, Bdfaul le niveau est vide Nous ne fournissons aucun texte sur cette étiquette, puis je l'emballe. Maintenant, après avoir créé l'étiquette, nous devons mettre la valeur dans cette étiquette. Pour cela, nous devons créer une fonction. Ici, je vais définir une fonction et le nom de notre fonction est et le nom de notre fonction est affiché sélectionné. Ensuite, dans cette fonction, nous devons d'abord obtenir la valeur de cette boîte à options. Pour cela, je vais définir une variable appelée selected et selected égale à la méthode Combo point Gate. Il va obtenir la valeur sélectionnée à partir de cette zone de liste déroulante. Ensuite, nous devons configurer cette étiquette car nous devons mettre l' option sélectionnée sur cette étiquette. Pour cela, nous devons utiliser la méthode de configuration, étiqueter point config dans la pause d'exécution, ici nous devons sélectionner le paramètre, dans lequel nous allons configurer Dans notre cas, le texte , comme ici, nous utilisons Estring. Ensuite, nous tapons, vous le sélectionnez et à l'intérieur de la niche de la voiture, nous passons la valeur La valeur que nous obtenons de la zone de liste déroulante. Je vais sous-traiter ce fichier. Ensuite, nous devons créer un bouton qui va déclencher cette fonction d'affichage sélectionnée. Ici, je définis le bouton, bouton égal au bouton racine, et je goûte ce bouton dans une fenêtre racine et je sélectionne Je goûte ce bouton dans une fenêtre racine, puis je dis le texte du bouton, afficher la sélection. Après cela, j'utilise la commande. Ensuite, j'utilise un paramètre commun et dans ce paramètre commun, nous appelons la fonction show selected. Ensuite, j'emballe ce bouton et j' attribue un peu de rembourrage à YxS. Maintenant, avant qu'ils ne définissent ce fichier, vous pouvez voir quelques avertissements car nous devons tout importer depuis head. Je vais importer une étoile à partir de Kiner input star. De plus, j'importe une boîte à options. Si je définis ce fichier, cela résout le problème. Maintenant, après avoir défini ce fichier, si j'exécute ce code dans mon terminal, laissez-moi vous le montrer. Après avoir exécuté ce code dans mon terminal, voici à quoi ressemble notre boîte à options, et voici notre bouton, Afficher la sélection. Donc, par défaut, comme je vous l'ai dit, vous allez sélectionner Java. Je vais maintenant sélectionner C plus plus. Sélectionnez C plus plus plus, si je clique sur ce bouton, maintenant vous pouvez le voir s'imprimer, vous avez sélectionné C plus plus dans notre fenêtre à l'aide d'une étiquette. la même manière, vous pouvez sélectionner n'importe quelle valeur, et si je clique sur ce bouton, cela vous indique que vous sélectionnez Python. C'est l'exemple de la mise à jour de l'étiquette dans la zone de liste déroulante. J'espère que c'est clair pour toi maintenant. Si je parle d'une option commune de la boîte à options, il s'agit de la valeur, de l'état, courant, de la porte et du set. Permettez-moi maintenant de vous montrer un exemple avec l'État. En utilisant l'état, nous pouvons définir en lecture seule pour empêcher la saisie. Si je définis ce fichier et que j'exécute ce code, il s'agit du code précédent, et si je tape manuellement quelque chose dans la zone de liste déroulante, oui, vous le pouvez. Supposons que je sois ici type, go, go language. Et comme vous pouvez le voir dans notre liste, nous n'avons pas de langue officielle. Mais si je fais l'éloge, show selected, comme vous pouvez le voir imprimer sur notre étiquette, sélectionnez go, mais dans nos options, nous n'avons pas de langue go. Pour éviter cela, vous pouvez utiliser l'option State. Laissez-moi vous montrer comment faire. Où créons-nous la boîte combinée ? Après avoir transmis les valeurs, nous devons utiliser une virgule. Ensuite, nous devons utiliser ce paramètre, état, lecture seule. Si je définis ce fichier et que j'exécute ce code dans mon terminal, maintenant dans notre boîte à virgule, nous ne pouvons rien taper Il est interdit de taper quoi que ce soit dans notre zone de liste déroulante. Désormais, il n'autorise que la sélection parmi les valeurs prédéfinies pour éviter toute saisie invalide. J'espère que le concept est maintenant clair pour vous, qu'est-ce qu'une boîte combinée ? Qu'est-ce qu'une boîte combinée ? Si je parle de ses cas d'utilisation, il est utile de sélectionner Ctrl ou langue. Changement de thème ou de mode et option d'ajustement du menu déroulant. N'oubliez pas que si vous souhaitez ajouter une nouvelle valeur à cette liste dans cette zone de liste déroulante, vous pouvez le faire manuellement. Il vous suffit d'utiliser la méthode du set de points combiné. En l'utilisant, quelle que soit la valeur que nous transmettons, elle sera placée dans cette liste. Je vais vous montrer la démonstration. Après avoir sélectionné la zone actuelle, si je définis une nouvelle valeur pour cette zone de liste déroulante, dans notre cas, Combo point set go. Je vais maintenant ajouter le langage go à ces valeurs. J'ai défini ce fichier, si j'exécute ce code dans mon terminal et si j' ouvre mon option déroulante, vous pouvez voir ici l'option go Et si je clique sur Afficher la sélection, maintenant vous pouvez le voir s' imprimer, vous le sélectionnez Go J'espère que le concept est maintenant clair pour vous : comment nous pouvons utiliser Combo Box et à quoi sert Combo Box. Merci d'avoir regardé cette vidéo, Syuned pour notre prochain tutoriel 21. Boîte à retours Tkinter - Widget: Bonjour, les gars. C'est bon de te revoir. Encore une fois, je suis de retour avec un nouveau tutoriel et aujourd'hui dans ce tutoriel, nous allons apprendre un nouveau magicien. Et aujourd'hui, nous allons apprendre le magicien Kiner Spin Box. Cet assistant de boîte à rotation de Kinter Lake choisir parmi une plage de valeurs à l'aide des petites flèches vers le haut et vers le bas Il est souvent utilisé lorsque la saisie est numérique ou limitée pour spécifier une action Si nous parlons de sa principale caractéristique, elle permet la saisie incrémentielle à l'aide de flèches, sauf uniquement les valeurs comprises dans une plage définie Ou un ensemble fixe de choix, empêche également les entrées non valides. Permettez-moi de vous montrer ce qu'est la Spin Box. Nous sommes dans l'éditeur de code de mon studio Visors et nous expliquons comment créer une fenêtre de base simple à l'aide de Kiner J'attribue également un exemple de boîte à titre Ensuite, je vais créer une boîte de rotation. Pour cela, je vais définir une variable et notre variable est le spin. Rotation égale à l'endroit où je vais créer une boîte de rotation. Ensuite, à l'intérieur des bretelles rondes, nous devons d'abord fournir le nom de la fenêtre dans laquelle nous allons placer la boîte de rotation. Après cela, nous devons passer de valeur à valeur. En utilisant le paramètre from underscoe, nous pouvons définir le point de départ de notre valeur et en utilisant deux paramètres, nous pouvons définir la limite de Ensuite, nous devons emballer la variable de spin. Je tape Spin Dot Pack. À l'intérieur des presses rondes, j'attribue un peu de rembourrage aux Xxs et YxS. Ensuite, si je place ce fichier et que je l'annule dans mon terminal, voici à quoi ressemble notre boîte à rotation Comme vous pouvez le voir, par défaut, il affiche la valeur la plus basse zéro, et à l'aide de cette flèche, vous pouvez incrémenter la valeur, sinon la décrémenter Supposons que je veuille incrémenter la valeur, donc j'appuie sur la flèche vers le haut et nous pouvons l'incrémenter pour changer, car ici nous avons dit la limite Maintenant, permettez-moi de vous montrer un autre exemple. Ici, je vais transmettre la valeur personnalisée. Nous allons sélectionner le jour de la semaine. Pour cela, je vais définir une autre variable appelée days et elle va contenir un tuple À l'intérieur de ce tupel, nous allons passer le nom de la journée. Laissez-moi vous montrer comment faire. Lui, j'ai créé des jours tuples et je tiens tous les Danim d'un k. Après cela, nous devons créer un autre spin Je vais donc taper le spin 2 est le spin numéro deux, égal à. Encore une fois, nous devons définir la boîte de rotation. Ensuite, vous envoyez le pinceau rond que je vais passer dans une racine de fenêtre, puis dans une virgule supérieure, des valeurs, et ici je vais augmenter les valeurs au fil des jours Au lieu d'une valeur dynamique, nous utilisons ici des valeurs personnalisées. Nous pouvons maintenant sélectionner une valeur entre le lundi et le dimanche. Après cela, je vais préparer la boîte à spin. Nourriture PAC Math à deux points Drive Spin Spin, emballez. Ensuite, à l'intérieur des déshabillages, je vais attribuer un peu de rembourrage Je copie donc ces Value paddix et PadUI et je vais Je vais sous-traiter ce fichier. Après avoir sous-traité ce fichier, si j'exécute ce code dans mon terminal, vous pouvez maintenant remarquer une autre boîte de rotation. Mais ici, nous ne pouvons sélectionner que les jours. Les jours que nous passons sont pris en compte dans cette variable. Et si nous parlons de ses options utiles, laissez-moi vous montrer qu'il est livré avec plusieurs paramètres, du soulignement à la commande d'incrémentation des valeurs avec state Maintenant, laissez-moi vous montrer un autre exemple avec la fonction de rappel. Nous allons utiliser cette commande de paramètre. Revenons au code Visa Studio. Donc, d'abord, je vais créer un nouveau pi principal à deux points pour Python Pi. Ensuite, je vais importer l'intermodule et créer la fenêtre de base Ici, je crée la fenêtre de base, nous devons également exécuter la boucle principale. Point racine, point signifie boucle. Ici, je vais créer une autre boîte de rotation, qui appellera une fonction à l'aide d'un paramètre de commande. Je crée donc ici cette boîte de rotation et nous la plaçons dans une fenêtre racine et nous définissons la valeur 1 à 10 en utilisant le paramètre de commande, nous appelons une fonction en cas de modification Nous ne définissons pas la fonction, c'est pourquoi elle affiche l'avertissement. Ensuite, nous intégrons cette vitesse. Ensuite, je vais créer la fonction on change. Ici, je vais taper Dave sur le changement dans les vers ronds. Je ne vais rien faire passer. Ensuite, dans la fonction de modification, pour l'instant, je vais taper pass. Ensuite, je vais créer une étiquette devant cette boîte à épingles. Ici, je vais définir un niveau d'étiquette égal au niveau et nous définissons ce niveau dans une variable de niveau. À l'intérieur de ce niveau, nous saisissons la valeur actuelle. Je vais à la valeur actuelle dans notre fenêtre. Ensuite, nous devons travailler sur la fonction de modification. Dans un premier temps, nous devons obtenir la valeur à partir de cette boîte à épingles et également la stocker dans une variable. Pour cela, je vais définir une variable dont la valeur sélectionnée et la valeur sélectionnée sont égales à spin dot gate. En utilisant la méthode du portail, nous obtenons la valeur de cette boîte à épingles. Nous obtenons la valeur de cette boîte à épingles. Ensuite, je souhaite imprimer la valeur de la porte dans notre terminal. Ici, je vais taper une instruction d'impression, imprimer dans les unvers, je tape selectate, puis nous imprimons cette Ensuite, vous devez également configurer l'étiquette car je souhaite également afficher la valeur sélectionnée dans notre étiquette. Ici, nous devons taper level point config dans la rundress et configurer le paramètre text, text égal à et ici j'utilise la méthode Estring Ensuite, à l'intérieur du double code, je passe la valeur actuelle et à l'intérieur de la presse couleur, je passe la valeur sélectionnée. Je vais configurer ce fichier. Donc, chaque fois que je choisis une valeur dans la boîte de rotation, elle imprime la valeur actuelle Laisse-moi te montrer. Veuillez donc définir ce fichier. Si j'exécute ce code dans mon terminal, vous pouvez voir ici la fenêtre, et voici notre boîte de rotation. Si j'augmente la valeur, vous pouvez maintenant voir que la valeur actuelle est de deux. Il imprime la valeur actuelle dans ma fenêtre à l' aide de l'étiquette. Il imprime également la valeur actuelle dans notre terminal à cause de cette instruction d'impression et nous utilisons ici fonction de rappel avec le paramètre de commande help hop Donc, instantanément, cela a changé la valeur lorsque je l'ai augmentée. Et maintenant, laissez-moi vous montrer une autre chose très importante. Si vous essayez de modifier au minimum la valeur de la boîte de rotation, oui, vous le pouvez Je t'autorise à le faire. Vous pouvez donc transmettre n'importe quelle valeur telle que 56, mais ce n'est pas ce que je veux. Si vous faites cela, l'utilisateur peut transmettre n'importe quoi, toute clé non valide telle que du texte, un chiffre, etc., donc je n'en veux pas Pour résoudre le problème, nous pouvons utiliser un autre paramètre, qui est l'état. Ainsi, lorsque vous créez cette spin boox, vous devez utiliser un autre paramètre, qui est l'état État égal au radon. Vous devez utiliser ce paramètre et c'est important. Donc, une fois satisfait, si je reprends ce code et que j'essaie de modifier la valeur du spin boox manuellement, ça ne marchera pas Maintenant, vous ne pouvez rien taper ici, mais vous pouvez augmenter la valeur J'espère donc que le concept est maintenant clair pour vous : qu'est-ce que Spin Boox et comment nous pouvons l'utiliser Si je parle de cas d'utilisation, ils sont utilisés pour répertorier la quantité ou le nombre, choisissant l'heure, la date ou l'évaluation. J'espère donc que le concept de Spin Box est maintenant clair pour vous. Merci donc d'avoir regardé cette vidéo, restez connectés pour le prochain tutoriel. 22. Widget Échelle Tkinter: Bonjour, les gars, c'est bon de vous revoir. Encore une fois, je suis de retour avec un nouveau tutoriel lié à Kiner. Aujourd'hui, dans ce tutoriel, nous allons apprendre Kinter Scale Wizard Cet assistant d'échelle intégré fournit un curseur permettant de sélectionner une valeur numérique dans une Il est idéal pour saisir des chiffres avec des informations visuelles, telles que le volume, la luminosité ou les paramètres Sprint. Si je parle de sa principale caractéristique, il sélectionne une onde continue ou échelonnée. Peut être horizontal ou vertical ? En outre, il affiche une poignée que l'utilisateur peut faire glisser et prend en charge les fonctions de rappel lorsque la valeur change Permettez-moi de vous montrer un exemple de Scale Wizard. Comme vous pouvez le constater, nous sommes pour moi un coordinateur de studio et je crée déjà une fenêtre de base simple. Ici, nous allons créer une échelle horizontale. Pour le créer, je vais d'abord définir une variable et le nom de notre variable est scale, scale égale à notre assistant d'échelle. Ensuite, dans le Rundress, nous devons placer l'échelle dans une fenêtre racine, puis nous devons définir d'où nous allons commencer notre mise à l'échelle Nous allons commencer à échelonner à partir de zéros. Il s'agit de la plage minimale et notre plage maximale est 100 et nous définissons la plage maximale avec deux paramètres. Ensuite, nous devons définir l'orientation. En l'utilisant, nous pouvons définir l'orientation. Il peut être vertical, sinon horizontal. Dans notre cas, nous utilisons l'horizontale. Ensuite, nous utilisons le paramètre de commande. Il va appeler cette fonction show value, et maintenant je vais créer la fonction. Je vais définir la fonction. Donc, tapez DF et le nom de notre fonction est show value. Ensuite, à l'intérieur du laiton rond, je vais passer le do some type val. Ensuite, dans cette fonction, pour l'instant, je vais taper pass. Ensuite, nous devons placer la balance dans notre fenêtre racine. Pour cela, je vais taper pack scale point pack. À l'intérieur des bretelles rondes, j' assigne un peu de rembourrage, j'en paie dix. Ensuite, je vais créer une étiquette qui va peindre la largeur d'échelle actuelle. Pour cela, je définis une étiquette variable et une étiquette égales à label et nous les plaçons dans une fenêtre racine, et je lie ce texte à cette étiquette. J'assigne ce texte à cette étiquette, sélectionnée zéro. Par défaut, il va l'imprimer et j'emballe cette étiquette. Maintenant, dans notre fonction, nous devons configurer cette étiquette et la configurer ici pour taper, some removed pass totype label point Cf. Dans les robes de course, je vais taper du texte, et je veux configurer le paramètre de texte égal à, et je vais utiliser Estrem ensuite dans les codes doubles Dans les codes doubles, je vais transmettre cette instruction, sélectionner dans le cali contre la valeur La valeur que nous obtenons de cette échelle correspond à la valeur indiquée sur cette étiquette. Et je vais configurer ce fichier. Après avoir défini ce fichier, si je ne saisis pas ce code dans mon terminal, vous pouvez voir l'échelle ici. Par défaut, il est défini sur zéro, la valeur minimale. Si je déplace ce curseur, comme vous pouvez le voir, il imprime la valeur notre niveau et nous pouvons faire glisser jusqu'à 100 valeurs Permettez-moi maintenant de vous montrer les options que nous pouvons utiliser avec l'assistant de mise à l'échelle. Ce sont les paramètres que nous pouvons utiliser avec la commande d'échelle allant de à orientation, résolution, la longueur, l' intervalle et le niveau. En utilisant la résolution, nous pouvons définir la taille du stp en utilisant la longueur, nous pouvons définir la longueur du curseur en pixels En utilisant l'intervalle de pointe, il marque intervalle sur l'échelle et chante et en utilisant le niveau, nous pouvons afficher le texte au-dessus de l'échelle. Laissez-moi vous montrer la démonstration de tous ces paramètres. Encore une fois, nous sommes dans le code de mon studio Visal et je vais le commenter en ligne Ici, je vais créer une autre échelle. Donc, dans un premier temps, je vais définir l'échelle variable. Méthode de l'échelle égale à l'échelle. Ensuite, à l'intérieur des presses rondes, nous devons d'abord le placer dans une racine de fenêtre. Ensuite, je vais utiliser notre premier paramètre de underce from underscoe et je vais commencer notre échelle à Dix, et je veux le porter à dix. Ensuite, je vais fournir la valeur d'orientation. En utilisant l'orientation, nous pouvons définir l'orientation de l'échelle. Il peut être vertical, sinon horizontal. Tapez donc orient et cette fois je vais utiliser une valeur verticale, verticale. Ensuite, je vais utiliser la résolution de résolution, et je vais dire la résolution 0,5. Après la virgule, je vais dire longueur, longueur et troupeau pour définir la longueur de 200 ou 200 pixels Ensuite, nous allons utiliser un intervalle épais. Cochez l'intervalle, et je vais le régler sur. Ensuite, je vais utiliser le niveau et je vais régler le réglage. Ensuite, je vais utiliser Command Perimeter, Command, Command Decal Two, et je veux appeler cette fonction show value Je copie le nom de la fonction et je vais le mettre ici. Ici, j'utilise tous les paramètres, résolution d'orientation, la longueur, l'intervalle de synchronisation, l'étiquette et la commande. Ajoutez cela également à la méthode Scale Dot Pack du type d'échelle. Je vais configurer ce fichier. Configurez les lettres de ce fichier sur le code de notre terminal et voyez à quoi il ressemble. Avant de définir ce fichier, je déplace l'étiquette au-dessus de cette échelle, et je vais redéfinir ce fichier et exécuter ce code dans notre terminal. Sur ce code, comme vous pouvez le voir, comme vous pouvez le voir, il s' agit d'une échelle verticale. Il a défini la hauteur de l'échelle de 200 pixels. Prenez le deuxième intervalle. Donc, en haut de zéro , il imprime deux, puis il en imprime quatre , puis six, puis huit, puis dix Il s'agit de notre valeur d'ajustement du niveau de compétence. Et vous pouvez également remarquer que lorsque je fais glisser mon curseur, il saute Dn 020.5, car c'est Harry a dit que la résolution était de 0,5. Ainsi, à chaque étape, il passe à 0,5. De même, si je le fais défiler à nouveau vers le bas, il saute maintenant vers le haut jusqu'à ce qu'il soit devenu 1,5. Ainsi, à chaque étape, la valeur de ce curseur a augmenté de 0,5. Et si nous parlons des cas d' utilisation de cet assistant, il est utilisé pour le contrôle du volume audio, l'étiquette de la salle d'image, le contrôle de la luminosité, la vitesse ou la difficulté du jeu, et bien d'autres encore. Maintenant, vous savez à quoi sert le magicien de compétences dans l'introduction Merci d'avoir visionné cette vidéo, restez connectés pour notre prochain tutoriel. 23. Barre de progression dans Tkinter (via ttk): Bonjour, les gars. C'est bon de te revoir. Encore une fois, je suis de retour avec un autre tutoriel lié à Python KintertDay. Dans ce tutoriel, nous allons apprendre la barre de progression C'est un autre magicien de Kinter. Maintenant, qu'est-ce que la barre de progression ? L'assistant de barre de progression de KinterTTT fournit une représentation visuelle de la progression d' une tâche de journalisation Il peut fonctionner selon deux modes. Et si je parle de son mode, il est livré avec un mode déterminé et un mode indéterminé Le mode déterminé affiche la progression réelle de 0 à 100 %, et le mode indéterminé indique le mouvement sans indiquer ce qui Il est essentiellement utilisé lorsque vous ne connaissez pas la durée. Permettez-moi de vous montrer la syntaxe de base de la barre de progression. Comme vous pouvez le voir, nous sommes dans mon éditeur de code studio. Dans un premier temps, je vais importer le module inter. De Kinar, je vais importer une étoile. Il va importer tous les modules nécessaires. Après cela, nous devons importer la barre de progression depuis le Kint TK Ici, je vais taper à partir de la barre de progression de l'importation de Kint TK. Ensuite, je vais créer une fenêtre racine en utilisant la classe TK, root égale à TK. Après cela, nous devons exécuter la boucle principale. Après avoir créé la fenêtre de base, je vais créer la barre de progression, et je vais la stocker dans une variable et notre variable est PB, barre de progression. PB est égal à la barre de progression. À l'intérieur des tours, vous devez d'abord définir la racine Ensuite, nous devons fournir l'orientation. Dans notre cas, l'orientation est égale à l'horizontale. Ensuite, la longueur est égale à 200 et le mode détermine. Ensuite, je vais emballer cette barre de progression, méthode pv dot pack, et je vais définir ce fichier. Bien sûr, définissez ce fichier. Si j'exécute ce code dans mon terminal, comme vous pouvez le voir, voici à quoi ressemble une barre de progression. Mais pour commencer une progression, nous devons définir une fonction. Mais avant d' ajouter un bouton. Mais je vais augmenter la longueur de la barre de progression, je vais la porter à 300. De plus, je vais ajouter un peu de rembourrage à YxS lorsque je l'emballerai pad, Y, pad, Y égal à 20. Dans le cas contraire, dix. Un égal à dix, et je vais définir ce fichier. Maintenant, créons un bouton qui va déclencher une fonction. Cela va déclencher une fonction et ils vont démarrer la progression. Je vais définir un bouton variable, bouton égal à bouton et attribuer ce texte, démarrer la progression à ce bouton et une commande égale à celui-ci pour appeler cette fonction, démarrer la progression. Maintenant, nous devons définir cette fonction, mais avant de compresser ce bouton, méthode Vtn point PAC Ensuite, je vais copier le nom de la fonction, démarrer la progression et définir la fonction. Donc, avant la classe DC, je vais définir une fonction, Dave, et le nom de notre fonction est start progress. Ensuite, dans cette fonction, vous devez définir la valeur actuelle de la barre de progression, et pour définir la valeur actuelle, vous devez taper PV, puis dans le carré, vous devez mettre la valeur Qd Vous pouvez ensuite attribuer la valeur que vous souhaitez. PV zéro signifie qu'il est vide au départ. Ensuite, je vais enregistrer la vague de progression maximale. Maxwell est égal à 100. Ensuite, je vais définir la valeur maximale de la barre de progression. Encore une fois, je tape PV dans la base carrée, je vais définir la valeur maximale égale à Maxwell. Je veux dire la centaine. Plus haut, nous devons démarrer une boucle de 0 à 100. Donc, taper pour I dans gamme à l'intérieur du laiton rond, c'est Max Bell plus un. Ici, j'utilise plus un pour m' assurer que 100 sont inclus. Ensuite, dans ces quatre boucles, nous devons mettre à jour la barre de progression. Donc, la valeur PV est égale à I. Donc à chaque fois, elle va se mettre à jour d'une unité. Donc, à chaque fois, le tableau de progression sera mis à jour. Ensuite, nous devons forcer l'application to I à supprimer pour reformuler la valeur de mise à jour Pour cela, nous devons taper pb point update. Cette méthode. Et pour que la barre de progression se remplisse sans problème, nous devons lui attribuer un petit délai. Je dois attribuer un délai de 20 millisecondes, totoot en haut à l'intérieur brces de course, je vais En gros, cela va introduire un délai de 20 millisecondes entre chaque mise à jour en utilisant le point racine Ater Maintenant, après avoir défini ce fichier, si j'exécute ce code dans mon terminal, comme vous pouvez le voir, c' est notre barre de progression. Si je clique sur Démarrer la progression, laissez-moi vous montrer que, comme vous pouvez le voir, cela commence par la barre de progression, remonte à 0200 et remplit la barre de progression Voici donc l'exemple d'une barre de progression déterminée. Permettez-moi maintenant de vous montrer un autre exemple de barre de progression indéterminée. Comme vous pouvez le voir, je crée déjà une fenêtre de base de Kinser Maintenant, je vais créer une barre de progression, mais cette fois je vais utiliser le mode indéterminé Ici je crée cette barre de progression, PB égal à la barre de progression, puis orientation horizontale et longueur 300 en mode indéterminé Ensuite, j'emballe cette barre de progression. Ensuite, je vais créer le bouton de démarrage du chargement. Je définis ce bouton et le texte de notre bouton commence à se charger. Ensuite, je commande cette fonction, Run indeterminate. C'est le nom de notre fonction, et j'emballe ce bouton. Ensuite, je vais créer un autre bouton pour arrêter la progression. Ici, je crée un autre bouton pour arrêter la progression, et cela s'appelle cette fonction, stop indeterminate Nous devons maintenant définir les deux fonctions. Tout d'abord, je vais définir run indeterminate. Ici, Dave exécute indéterminé dans la fonction, j'utilise PV En cours de course contre dix millisecondes. barre de progression démarrera au bout dix millisecondes Ensuite, nous devons arrêter la barre de progression. Pour cela, je vais définir une autre fonction nom est stop indeterminate Arrêtez indéterminé dans cette fonction. Dans la méthode PV point stop type PV pour arrêter la verve de progression. Si je définis ce fichier et sauf code dans mon terminal, vous pouvez voir ici la barre de progression, le démarrage du chargement et le bouton d'arrêt. Si je fais l'éloge du bouton de démarrage, vous pouvez maintenant le voir bouger sans indiquer ce qui est fait. Nous l'utilisons lorsque nous ne connaissons pas la durée. Nous ne savons pas combien de temps il nous faudra pour terminer notre travail, et si vous voulez arrêter cette progression juste pour vous féliciter, cliquez sur le bouton d'arrêt. Voici un exemple de barre de progression déterminée et indéterminée Maintenant, si je parle de son option courante, sinon de son paramètre, il est livré avec l'orientation, la longueur, mode, le maximum et la valeur, nous le connaissons déjà. Si je parle des cas d'utilisation, il est utilisé pour le téléchargement de fichiers, la finalisation fiscale, l'écran de chargement, installation ou les opérations par lots. C'est tout pour ce tutoriel. Merci d'avoir regardé cette vidéo, restez connectés pour le prochain didacticiel. 24. Menu et sous-menus dans Tkinter ter: Bonjour les gars. C'est bon de te revoir. Encore une fois, je suis de retour avec un nouveau tutoriel lié à Kiner wizard. Aujourd'hui, dans ce tutoriel, nous allons apprendre les menus et les sous-menus dans Kinter. Maintenant, la question est : qu'est-ce qu'un menu ? Dans Kiner, un menu est une liste déroulante d' options situées généralement en haut de la fenêtre, comme fichier, édition, guérison dans la plupart des applications, et les sous-menus sont des menus imbriqués qui apparaissent lorsque vous survolez une option de menu lorsque vous survolez Si je vous montre l' exemple de menu, c'est l'exemple de menu dans n'importe quelle application. s'agit de la barre de menu, et c'est l'un des assistants les plus importants de toute application graphique. Voyons maintenant comment créer un menu. Dans un premier temps, nous devons créer un objet de menu. Ensuite, nous devons l'attribuer à fenêtre principale en utilisant le point de fenêtre. Ensuite, nous devons ajouter des menus de haut niveau tels que Fichier, Modifier, Aide, etc., en utilisant Ajouter un cercueil de soulignement. Vous pouvez ajouter des commandes et des sous-menus en utilisant la méthode Add underscoeommand et ajouter une méthode la fenêtre principale en utilisant le point de fenêtre. Ensuite, nous devons ajouter des menus de haut niveau tels que Fichier, Modifier, Aide, etc., en utilisant Ajouter un cercueil de soulignement. Vous pouvez ajouter des commandes et des sous-menus en utilisant la méthode Add underscoeommand et ajouter une méthode de séparation de soulignement. Ne t'inquiète pas. Je vais vous montrer tout cela, comment créer un menu et un sous-menu Si nous parlons des méthodes clés et de leurs rôles, ce sont toutes des méthodes. Comme le menu au niveau de la commande, de la cascade, séparateur, du tear off, configuration root point, etc. Cette méthode crée un nouveau menu. En utilisant at command, nous pouvons ajouter des éléments exploitables, et en chantant en cascade, nous pouvons ajouter des sous-menus En utilisant un séparateur, nous pouvons ajouter des lignes horizontales. En utilisant Tear Off Zero, nous pouvons supprimer le tiret en haut du menu. C'est facultatif. En utilisant le point racine C fig, nous pouvons relier la barre de menu à la fenêtre principale. Permettez-moi de vous montrer comment nous pouvons créer un principal. Passons à l'aspect pratique. Comme vous pouvez le voir, nous sommes dans mon éditeur de code Visual Studio et je crée un fichier Python principal, et je crée un fichier Python, MainTPI et ici, je crée une fenêtre simple de base Dans un premier temps, nous devons créer une manœuvre. Pour cela, je vais définir une variable appelée manuar Manure égale à ici, nous devons utiliser ce menu de classe et à l'intérieur et à l'intérieur de celui-ci, nous devons mentionner la fenêtre dans notre racine de cas Après avoir créé la manœuvre, je vais créer le faisceau de fichiers Pour cela, je vais définir une variable appelée menu fichier. Le menu Fichier est le même que moi. Et je vais déplacer ce menu dans ce manuel. Ensuite, vous utilisez un autre paramètre tear off, tear off zero. Je veux dire que cela va supprimer le tiret en haut du menu. Elle est facultative. Si tu veux l'utiliser, oui, tu peux. Ensuite, vous devez ajouter l' étiquette de ce menu de fichier. Vous devez également le mettre dans le fichier Menu. Pour cela, nous devons taper manubar manubar point sur Cask Method Ensuite, à l'intérieur, vous devez d'abord fournir le nom du fichier, je veux dire le fichier d'éléments de menu, puis le menu Menu égal au menu fichier et je vais définir ce fichier. la même manière, je vais créer deux autres éléments de menu tels que le fichier, puis je vais créer Modifier. Après cela, je vais créer de la santé. Voilà, je vais créer le menu Edition. abord, je vais taper le menu d' édition, le menu d'édition est égal au menu et je vais le mettre dans une barre de menu. Et je dis aussi niveau de zéro. Ensuite, pointez manuellement le point en cascade, étiquetez Modifier et passez au menu Modifier la même manière, je vais en créer un autre, qui est le menu d'aide. Tapez help Mu égal au menu. Ensuite, pointez Mnubar en cascade, étiquetez Hill, Mnqual pour aider Min. Ensuite, nous devons attacher le menu incorrect à la fenêtre. Pour cela, nous devons utiliser la méthode de configuration root point, root point config. À l'intérieur du rond, la mention Menu est identique à la barre de menu. Celui-ci. Je vais régler ça très bien. Après avoir défini ce fichier, si j' exécute ce code dans mon terminal, voici à quoi ressemblera notre menu. Maintenant, si je fais référence à mon cause dans le menu Fichier, vous ne pouvez rien voir ici car dans le menu Fichier, ne créez aucune option pour l'utilisateur Maintenant, dans le menu Fichier, je vais mettre Nouveau fichier, Ouvrir un fichier, quitter , etc., enregistrer, etc. Je tiens à dire que si je clique sur le menu Fichier, vous pouvez voir ici d'autres options telles qu'un nouveau fichier, nouvelle fenêtre, ouvrir un fichier, ouvrir un dossier, enregistrer des SABA, etc. Vous pouvez également voir une ligne de séparation. Vous allez donc créer cela. Nous pouvons le faire en utilisant la méthode de commande at. abord, nous devons taper le nom du menu dans notre cas File Menu. Je vais donc passer le point du menu du fichier à la commande. En utilisant la commande, nous pouvons ajouter un nouvel élément. Nous pouvons ajouter un nouvel élément dans le menu dans notre cas, nouveau et il commande cette méthode. Ainsi, chaque fois que nous appuierons sur le nouveau label, il exécutera cette fonction, les cinq nouveaux, et notre fonction créera un nouveau fichier. C'est à vous de décider de ce que votre fonction va faire. Donc pour l'instant, je vais définir une fonction, un nouveau fichier. Je copie donc le nom de la fonction. Je vais donc définir cette fonction. Après avoir importé le module, je vais définir ici la fonction appelée nouveau fichier. Date du nouveau fichier et cette fonction va imprimer cette ligne dans notre terminal, Nouveau fichier créé. Nous n'allons pas créer de nouveau fichier car ici j'essaie juste vous montrer comment créer le menu. Après cela, après avoir créé le Nu, je vais créer un autre niveau. Je veux créer open. Donc, de la même manière, nous devons taper filenu point at command, label open, et cela va appeler cette fonction open file Et nous devons également créer cette fonction. Donc, ici, je vais définir une autre fonction, ouvrir un fichier, et vous allez imprimer le fichier ouvert. En gros, j'essaie simplement d' imiter un menu, quelque chose comme ça Après cela, je veux ajouter un séparateur comme celui-ci. Donc, si j'ouvre le menu des fichiers, vous pouvez voir ici un séparateur. De la même manière, nous pouvons créer un séparateur dans Kinder. Pour créer le séparateur, tapez le point du menu dans la méthode du séparateur. Définissez le séparateur vers le haut, comme vous pouvez le voir, jusqu'à définir le séparateur, nous allons créer la sortie. Ici, je vais définir un autre point de menu du fichier d' étiquettes à la sortie de la commande, et je vais appeler cette fonction exit app. Nous devons maintenant définir cette méthode. Alors voilà, Dave quitte l'application dans Root Dot Quit. Je vais régler ce cinq. Chaque fois que l'utilisateur appuie sur ce bouton, la fenêtre se ferme. Maintenant, nous allons sous-traiter le fichier et exécuter ce code dans notre terminal. Je veux appuyer sur le bouton Exécuter. Comme vous pouvez le voir, c'est notre manuel si je clique sur le fichier, ici vous pouvez voir Nouveau s'ouvrir et quitter Si j'appuie sur Nouveau, comme vous pouvez le voir dans mon terminal, imprimez, un nouveau fichier est créé. De même, si j'appuie sur Ouvrir, il va imprimer, ouvrir, classer ouvert. Et si je clique sur l'option de sortie, vous pouvez également remarquer le séparateur ici, et si je clique sur l'option de sortie, la fenêtre sera fermée. Il va sortir du pura. la même manière, je vais ajouter d'autres options d'édition, telles que le copier-coller. Je vais ajouter ces trois options. Ici, dans le menu Edition, je vais ajouter toutes les options en utilisant la méthode de commande at. abord, nous voulons lier le nom du menu. Dans notre cas, Modifier le point du menu à commande dans le Rundress doit utiliser le paramètre label, label égal à cut Et je vais configurer ce fichier. Maintenant, si je définis ce fichier et que j'exécute ce code dans notre terminal, cette fois si je l'ouvre et si je clique sur cette option Modifier, vous pouvez voir ici les deux options. Coupez, copiez et collez. Passons maintenant au menu Aide. Ici, je vais créer un sous-menu à l'intérieur. Dans le menu Aide, je vais définir ici un autre menu qui concerne le menu. À propos du menu, c'est égal à menu et je vais le mettre dans le menu d'aide. Voici donc notre menu d' aide et ici je vais placer le menu À propos dans le menu d'aide. Ensuite, dans le menu At, je vais ajouter les libellés, tels que À propos de nous, Virgin Info, etc. Ensuite, nous devons également mettre ce menu à propos dans le menu d'aide. Nous devons donc utiliser la méthode en cascade. Iotapez helpmenu point en cascade à l'intérieur du laiton rond, étiquette attribuez cette étiquette à propos du menu et Mnequal à propos Ici, nous créons le menu A, puis nous devons le placer dans le menu Aide en utilisant la ATCascat. Je vais configurer ce fichier. Après avoir défini ce fichier, si j'exécute ce code dans mon terminal, vous pouvez maintenant voir un menu entièrement fonctionnel. Si je clique sur le menu d'aide, vous pouvez maintenant voir un sous-menu, qui est à peu près Si je passe le pointeur de ma carte sur ce menu à propos , vous pouvez voir qu' une autre fenêtre s'ouvre et que vous pouvez voir ATs et Virgin Info Ici, créez un homme entièrement fonctionnel et nous connaissons le processus pour le créer C'est tout pour ce tutoriel. Merci d'avoir regardé cette vidéo. 25. Séparateur, fenêtre à couche, carnet de notes: Bonjour, les gars. C'est bon de te revoir. Encore une fois, je suis de retour avec le nouveau tutoriel relatif aux assistants Kiner Advanced Ici, je vais expliquer trois assistants de structure de mise en page importants dans Kiner Separator, Pan Window et Notebook Ces assistants sont principalement utilisés pour organiser et améliorer la mise en page de l'interface utilisateur dans des applications plus complexes Commençons maintenant par le premier séparateur, le séparateur Tk. Il s'agit d'une fine ligne utilisée pour séparer visuellement les différentes sections de votre interface graphique. Il peut être horizontal ou vertical. Si je parle de sa syntaxe, vous devez taper Tt separator class. Ensuite, à l'intérieur du laiton , nous devons passer l'élément parent à la racine de notre boîtier Ensuite, nous devons fournir l'orientation, par exemple horizontale, sinon verticale. Voyons la démonstration de la façon dont nous pouvons l'utiliser. Comme vous pouvez le voir, nous sommes invités par le studio codior et moi créé un séparateur de nom de fichier Python point pi abord, nous importons notre module Kiner et nous importons tout depuis le Kinter Ensuite, nous importons le TDK depuis Kiner. Ensuite, nous créons une fenêtre racine. Il s'agit de la fenêtre de base. Je vais maintenant définir un label. Je vais définir une étiquette pour cette fenêtre racine. Étiquette à l'intérieur des versets, je vais passer devant la racine du barrage de la fenêtre principale. Ensuite, je vais attribuer ce texte au-dessus de la ligne, puis j'emballe cette étiquette. Ensuite, je vais créer ce séparateur. Pour créer le séparateur tt point Sebatocass. Ensuite, dans le runbress, nous devons d'abord fournir le nom de la fenêtre dans notre racine de cas, puis nous devons fournir l'orientation Orientation égale à ici Je veux tracer une ligne horizontale, donc je passe à l'horizontale. Ensuite, j'emballe ce séparateur à l'aide du pack Mthwor, je remplis celui-ci à Xxs et j'attribue également un petit rembourrage dans la direction de YxS j'attribue également un petit rembourrage Ensuite, je vais définir un autre label. Étiquetez et je vais mettre l'étiquette en dessous de cette ligne horizontale. Ici, j'ai dit le texte de l'étiquette en dessous de la ligne, puis j'emballe cette étiquette. Après ce fichier, si j'exécute ce code dans notre terminal, laissez-moi vous montrer que c'est la ligne. C'est de cette phrase que je parle. Ici, je trace une ligne entre les deux étiquettes. Si je parle de cas d'utilisation, il s'agit de séparer les barres d'outils des sections ou de regrouper des zones dans une fenêtre Parlons maintenant de Pan Window. Il s'agit essentiellement d'un conteneur qui divise la fenêtre en volets mobiles et redimensionnables Vous pouvez y ajouter plusieurs assistants. Si nous en parlons de syntaxe d' abord sur le type fenêtre à volet, fenêtre à volet, puis à l'intérieur des rondes pour fournir, nous devons fournir le nom de la fenêtre Dans notre cas, la racine, nous devons alors fournir l'orientation, puis nous devons transmettre l'orientation. Dans notre cas, il serait horizontal, sinon vertical. Maintenant, laissez-moi vous montrer la démonstration de ce qu'est une fenêtre à carreaux. Comme vous pouvez le voir, je crée un autre fichier Python appelé window point Pi et ici je crée un kinter de fenêtre simple de base Dans un premier temps, je vais définir une fenêtre panoramique. Pour cela, je vais définir une variable PW PW égale à une fenêtre à volets Ensuite, à l'intérieur de Runress, root est le parent de la fenêtre panoramique, et nous utilisons l'orientation horizontale Cela signifie que nous allons placer la poêle côte à côte. Si vous souhaitez le placer en haut et en bas, vous pouvez utiliser la verticale. Ensuite, nous devons emballer ce pack Pw et, à l'intérieur du rond, il est indiqué que nous utilisons ici deux paramètres, fill et expand Si vous utilisez les deux options de remplissage, cela élargira l' assistant dans les deux sens. Je veux dire horizontalement et verticalement. Si le rythme libre est disponible et que l'extension est égale à un moyen, cela permettra à l'assistant de s' agrandir lorsque la fenêtre sera redimensionnée Et maintenant je vais apposer une étiquette sur cette fenêtre panoramique. Je veux le placer sur le côté des genoux. Pour cela, lapid égal à étiquette, je place l'étiquette dans cette fenêtre panoramique, et je tape du texte bed pan et notre couleur de fond est bleu clair Ensuite, nous devons ajouter le niveau de levage à l'intérieur de cette fenêtre panoramique sous forme de poêle. Pour cela, je vais taper pw point add dans le run bass is lit. De la même manière, je vais créer la bonne étiquette. Nous devons également le mettre du bon côté. Pour cela, encore une fois, nous devons utiliser la méthode add pw add right. Maintenant, après avoir défini ce fichier, si j'exécute le code dans mon terminal, voici à quoi ressemble notre fenêtre à volets Si j'augmente la taille de la fenêtre, comme vous pouvez le voir, fonction de la taille de la fenêtre, cela redimensionne les volets. En gros, nous l'utilisons pour les éditeurs côte à côte tels que l' explorateur de fichiers et l'éditeur. Nous pouvons également l'utiliser pour configurer les panneaux, la zone de prévisualisation, etc. Parlons maintenant du dernier, qui est un carnet de notes. Fondamentalement, nous l'utilisons pour créer une interface à onglets similaire au navigateur, similaire à l'onglet du navigateur ou à la boîte de dialogue de configuration En l'utilisant, vous pouvez passer d'un onglet à un autre. Si j'en parle de syntaxe, vous devez d' abord définir le nom de la variable, puis taper TDK notebook puis vous devez transmettre le nom de la fenêtre parent À ce stade, pour utiliser la méthode d'ajout. Ensuite, vous devez transmettre le cadre enfant et le texte, le nom de l'onglet. Laissez-moi vous montrer la démonstration à quoi ressemble un ordinateur portable. Comme vous pouvez le voir, je crée ici un autre fichier Python, notebook point five. Dans un premier temps, nous importons le module Ginter, puis nous importons toutes les fonctions, classes et constantes nécessaires Ensuite, nous importons TK. TTC est l'abréviation de Themed TK module, qui contient des assistants thématiques modernes tels que le bloc-notes, barre de progression et la vue Tre Nous créons la fenêtre de base Dans un premier temps, je vais définir un carnet de notes. Pour cela, je vais déclarer un notebook variable égal à Ttkt notebook et nous l'avons placé dans une fenêtre racine Ensuite, nous devons ajouter ce bloc-notes, bloc-notes, à l'intérieur du processus d'exécution, HerouSeepand, égal à un, et remplir égal aux et Agrandir un signifie que le bloc-notes s'agrandira pour utiliser tous les espaces disponibles dans la fenêtre, et remplir les deux signifie que le bloc-notes s'étirera fois horizontalement et verticalement lorsque la fenêtre sera redimensionnée Ensuite, je vais créer RaltFramef à deux onglets. Je vais donc définir deux variables tabo et tacto, Tabo égal au cadre, et je place ce cadre dans le carnet et j'en tape deux égales au cadre, je mets également celui-ci dans Ensuite, je vais attribuer un texte d'étiquette à l'onglet. Voici donc une étiquette de pourboire, et je vais la mettre dans un onglet et Amutip souhaite la bienvenue dans l'onglet et j'emballe cette De la même manière, nous devons créer une autre étiquette. Et cette fois, je vais mettre celui-ci dans l'onglet 2. Ensuite, nous devons ajouter chaque cadre sous forme d'onglet distinct au bloc-notes. Pour cela, nous devons utiliser la méthode add. Je vais ajouter les deux onglets, et je veux l'ajouter séparément. Je tape le point du bloc-notes dans l'onglet 1, le point du texte dans l'onglet 1 et le point du bloc-notes dans la balise de texte deux de l'onglet 2. Ici, l'onglet apparaîtra avec le titre de l'onglet un et le tag deux apparaîtra avec le titre de l'onglet deux. Maintenant, configurons le fichier. Définissons le fichier et exécutons ce code dans notre terminal. Après avoir exécuté ce code dans notre terminal, vous pouvez voir le résultat ici. Il s'agit de l'onglet 1. Dans cet onglet, Hey print, nous arriverons à l'onglet 1 à l'aide de cette étiquette. Si vous le survolez, vous pouvez voir qu'il est devenu bleu. Si je clique dessus, nous passons maintenant à l'onglet deux, semblable au navigateur. Ici, nous imprimons, c'est l'onglet deux à l'aide de cette étiquette. Si nous essayons de l'étendre, il continuera à fonctionner. Parce que Harry l'étend dans les deux sens. Il est très similaire à l'onglet du navigateur, et il est utilisé pour organiser les paramètres, les vues multiples ou le contenu classé. J'espère que le concept est maintenant clair pour vous. Merci d'avoir regardé cette vidéo, Sytune pour le prochain chapitre 26. La reliure sur commande (méthode plus simple): Salut, les gars, c'est bon de vous revoir. Il s'agit du premier didacticiel relatif à la gestion des événements Kinter. Dans ce tutoriel, nous allons apprendre la liaison de commandes, méthode plus simple dans Kinter. liaison de commandes est le moyen le plus simple et le plus convivial pour les débutants de gérer les événements dans Kinter. Il est généralement utilisé avec des assistants tels que le bouton, le bouton de vérification, le bouton radio et les hommes Vous pouvez attribuer une fonction à un assistant à l'aide du paramètre de commande. Lorsque l'utilisateur interagit avec cet assistant, la fonction est exécutée. Si j'en parle de syntaxe, tapez d' abord le paramètre de commande , puis vous devez attribuer le nom de la fonction. N'oubliez pas que lorsque nous transmettons le nom de la fonction, nous n'utilisons pas de parenthèses Cela signifie qu'elle ne s'exécutera pas immédiatement et que la fonction ne peut pas prendre d' argument à moins qu'elle ne soit encapsulée. Vous pouvez également l'utiliser avec la fonction Lambda. Lambda est une fonction à ligne unique. Permettez-moi donc de vous montrer le premier exemple, commande de base par bouton. Comme vous pouvez le voir, nous créons ici une fenêtre GY simple de base, et j'attribue ici un exemple de liaison de commande title. Nous savons que nous connaissons déjà cet événement, mais nous devons l'apprendre étape par étape. C'est pourquoi je vais vous le montrer. Je vais donc définir un bouton, bouton égal à bouton, et le texte du bouton est excellent. Et ici j'utilise le paramètre de commande. Une commande égale au nom de notre fonction est géniale. Maintenant, nous devons emballer ce bouton. Nous tapons donc ici button, dot pack Mthod. Ensuite, nous devons définir cette fonction. Je vais définir cette fonction à cette position. Je vais donc le mettre ici. Je vais configurer ce fichier. Dave, salut, écris Bonjour Kiner Il s'agit de la commande de base des boutons, et nous la connaissons déjà. Donc, si je lance ce code dans mon terminal et que je fais l'éloge du bouton, laissez-moi vous montrer que si je fais l'éloge du message d'accueil, comme vous pouvez le voir sur mon terminal, il affiche « bonjour », Kiner Maintenant, permettez-moi de vous montrer un autre exemple. Maintenant, chaque fois que nous appelons la fonction, je veux passer un argument. Pour cela, nous devons utiliser la fonction Lambda. Laisse-moi te montrer. Encore une fois, je suis de retour mon éditeur de code de studio et je crée également un autre fichier Python principal dans lequel Pi et moi créons une fenêtre simple de base. Au début, je vais définir un bouton et j'ai dit : « Donne-moi un coup de pied ». Ensuite, dans le coma, je vais utiliser une fonction Lambda. Commande égale à type Lambda, puis Colin. Ensuite, pour appeler la fonction et entre parenthèses, je vais passer le do Je voudrais présenter un argument. Nous devons maintenant traiter cet argument. Si pour définir cette fonction, afficher le message. Ici, je vais définir la fonction. Je copie le nom de la fonction, j'affiche le message. Je vais taper Dave et le nom de notre fonction est Afficher le message. Ensuite, en guise d'argument, nous allons passer mon nom Nom. Ensuite, dans la fonction ici, je vais taper print statement, print. Ensuite, à l'intérieur des robes rondes, je vais utiliser un string en F. Chaîne F à l'intérieur des codes doubles, bonjour virgule. Ensuite, dans les classes, je vais passer le nom de la variable et semi pour terminer cette ligne et exclavation. Je vais m'abonner. Maintenant, au lieu de mon nom, tu peux transmettre n'importe quoi ici. Vous pouvez transmettre n'importe quel nom ici. Maintenant, nous devons étiqueter ce bouton. Pour cela, je vais taper BTN button point PAC Mathod tag Maintenant, après avoir emballé ce bouton, je vais définir ce fichier et exécuter ce code dans mon terminal. Après avoir exécuté ce code, vous pouvez voir ici le bouton « cliquez sur moi ». Si je clique sur ce bouton, comme vous pouvez le voir imprimé dans mon terminal, bonjour, je m'appelle Jointo En gros, Lambda est utilisé pour créer une fonction anonyme qui enveloppe la fonction d'origine avec un paramètre Et si nous parlons de limitation de commande, aucune information sur les événements et d' aucun contrôle anticipé. L'absence d'informations sur l'événement signifie que vous n'avez pas obtenu de détails tels que la touche ou le bouton de la souris utilisé. De plus, vous ne disposez pas de commandes avancées telles que la position de la souris ou la saisie au clavier. Et si je parle de cas d'utilisation, nous l'utilisons avec des boutons tels que soumettre, enregistrer, annuler, etc. Nous l'utilisons également avec des menus tels que fichier, sortie, etc., et nous l' utilisons également pour des actions rapides et simples qui ne nécessitent pas de données d'événements Il s'agit de la méthode de liaison de commandes la plus simple. Et c'est ainsi que nous pouvons l'utiliser. Merci d'avoir regardé cette vidéo, restez connectés pour le prochain tutoriel. 27. Utiliser la méthode bind() (méthode avancée): Bonjour, les gars. C'est bon de te revoir. Encore une fois, je suis de retour avec un autre tutoriel lié à la gestion inter-événements, et aujourd'hui nous allons utiliser la méthode Bind. Il s'agit d'une méthode avancée. La méthode bind vous permet d' associer un gestionnaire d'événements à un assistant, afin qu'il puisse réagir aux événements de la souris, aux événements liés à des mots clés ou à d'autres déclencheurs Si je parle de sa syntaxe, totype wizard, la méthode de liaison par points, alors à l'intérieur du rond, il est indiqué que nous devons passer la description de l'événement entre crochets Ensuite, vous devez appeler la fonction de gestion. Des événements tels qu'un événement de souris, un événement de mot clé, etc. Ce sont tous des événements courants chez la souris. Si nous utilisons le premier bouton, cela signifie laisser la souris cliquer. Si vous utilisez le deuxième tiret inférieur, cela signifie un clic central. Si vous utilisez le D trois inférieur, cela signifie un clic droit. Si vous utilisez le premier bouton à double tiret, cela signifie un double clic labial. Et si nous utilisons P, on fait du mouvement, cela signifie que la souris fait glisser la souris avec le bouton b. Si nous utilisons Enter, cela signifie que les voitures sont des assistants Enter. Si nous utilisons les congés, les voitures sont des sorciers des congés. Ce sont tous des événements de souris que nous pouvons utiliser avec Kiner. Permettez-moi maintenant de vous montrer un exemple de base avec Lip Mouse Kick. Comme vous pouvez le voir, nous sommes dans mon éditeur de code studio et je crée un fichier Python main point Pi et ici je crée une fenêtre Kiner de base Ici, je vais d'abord définir une branche de base, étiquette égale à étiquette, et ici j'assigne un texte, cliquez à l'intérieur de moi. C'est le texte de l'étiquette, et j'ai dit : couleur du diagramme bleu clair largeur 30 et hauteur cinq. Ensuite, nous devons emballer cette étiquette. Pour emballer cette étiquette, je vais taper label point PAC Math hole. Ensuite, à l'intérieur du Roundres, je vais ajouter un peu de rembourrage, pad à YxS égal à, je vais ajouter un rembourrage de 20 pixels, et je vais définir ce fichier Ensuite, je vais lier cette étiquette à un événement. Pour cela, je vais taper label that bind method, bind. Ensuite, à l'intérieur des presses rondes, puis à l'intérieur des presses rondes en laiton, je vais utiliser ce premier bouton d' événement. À l'intérieur des codes doubles, à l'intérieur des codes doubles et à l'intérieur du crochet angulaire, je vais taper le premier bouton. Ensuite, je vais taper une virgule. Après cela, je vais appeler une méthode et notre méthode est sur click on underscore, Ensuite, nous devons définir la méthode. En gros, le héros utilise un événement Lap Mouse Click. Maintenant, lorsque je fais l'éloge de l'événement Lap Mouse Click sur cette étiquette, je veux exécuter cette fonction au clic pour définir cette fonction. Définissons donc la fonction. Donc ici, je vais définir la fonction. Dave on Click Inside the Rundresss event. Ensuite, dans la fonction, dépêchez-vous de passer l' événement de la souris en paramètre. Ensuite, nous devons extraire la position cliquée, la position XXS et OxS du clic et imprimer dans Pour cela, je vais taper print statement, print, ici j'utilise Estring puis je tape un clic de souris à l'intérieur des runds inside the calices event, xxS et event yXs . Il va imprimer la position du clic. Précepte cette pile. Si j'exécute ce code dans notre terminal. Vous pouvez maintenant voir l'étiquette ici. Maintenant, si je clique n'importe où sur cette étiquette, comme vous pouvez le voir, elle affiche une déclaration, clic de souris à 177 pixels depuis les Yx et à 23 pixels depuis les Xxs Et si je clique sur cette position, vous pouvez maintenant voir la valeur Xs 28 et la valeur YXS 33 Il s'agit de la coordonnée du clic de la souris. Voici donc l'exemple d'un événement impliquant une souris. Maintenant, laissez-moi vous montrer un autre exemple. Mais avant de vous montrer l'exemple d'un événement par mot clé, j'aimerais vous montrer quelques événements par mot clé. Voici les événements courants liés aux mots clés. Le premier est essentiel. Cela signifie que si nous appuyons sur une touche, cela déclenchera cet événement. La prochaine étape est le retour. C'est pour la touche Entrée. Puis vient Scape. C'est pour Scape Key. Puis montez, c' est pour la flèche vers le haut, puis descendez, c'est pour la flèche vers le bas. Puis viennent A. C'est pour Control plus A. Commençons par l'aspect pratique et voyons comment nous pouvons utiliser les événements du clavier. Comme vous pouvez le voir, nous sommes dans l'éditeur de code du studio utilisateur et je crée déjà un fichier Python principal sur deux Pi. Dans un premier temps, je vais créer un champ de saisie. Je vais prendre un champ de saisie. Je définis donc une entrée variable entrée par entrée, et nous la plaçons dans une fenêtre racine et je comprime ce champ de saisie. Après cela, je vais lier ce champ de saisie à keyboard evet. Pour cela, je vais taper entry point bind dans la touche Run Brass, et je vais faire appel à la méthode key. Nous allons appeler cette fonction. Cette méthode, déclencheur clé de tout éloge clé. Ensuite, nous définissons une fonction clé. Pour cela, tapez sur une touche lors de l'opération de pression ronde. Ensuite, dans cette fonction, je vais taper print statement, print. Ensuite, à l'intérieur des presses rondes, le manche utilise la chaîne A et à l'intérieur les doubles codes. Dans les codes doubles, je vais taper key prese, key Appuyez sur la touche, puis dans le Cliress, je veux imprimer le caractère réel Donc, pour taper même sur un caractère à points, il va imprimer le caractère réel. Je veux parler du personnage réel produit par la clé. Ensuite, je souhaite imprimer le nom de la clé. Pour cela, nous devons utiliser les clés d'événement YM. Laissez-moi vous le montrer. Ici, je tape le symbole, puis à l'intérieur des crochets, puis à l'intérieur des touches Caliverseven point YM En gros, il va imprimer nom lisible par l'homme de la clé. Exécutons maintenant le code dans notre terminal. Définissons le fichier et exécutons ce code dans notre terminal. Nous avons maintenant l'impression d'entrer. Et si je tape quelque chose comme A, maintenant, comme vous pouvez le voir dans notre terminal il imprime la touche A, le symbole est également A. Maintenant, si je fais l'éloge de l'expédition, vous pouvez voir que pour les caractères non imprimables, il n'imprime Dans notre clavier, il n'imprime rien, mais dans notre symbole, il imprime le backspace et Pour supprimer le caractère A, j'utilise le backspace. C'est pourquoi il imprime le backspace, puis je fais l'éloge de Shift C'est pourquoi il a saisi « expédié ». De même, si vous tapez la touche ultime, vous pouvez maintenant la voir imprimer Alt L. Si je fais l'éloge du côté droit, vous pouvez maintenant la voir s'imprimer. De même, si je loue la touche Scape, elle imprime Scape et si j' appuie sur un, deux, trois, quatre, sinon, sur n'importe quel chiffre, maintenant vous pouvez voir que la touche quatre est enfoncée, le symbole est également quatre. Voici un exemple d'événement clé commun. Permettez-moi maintenant de vous montrer le dernier exemple où je vais utiliser plusieurs événements dans un bouton. Nous allons utiliser plusieurs événements dans un seul bouton, alors laissez-moi vous le montrer. Comme vous pouvez le voir, encore une fois, je crée une simple fenêtre de base, et dans un premier temps, je vais définir un bouton. Tout d'abord, je vais définir un bouton et je l'emballe. Ensuite, je vais utiliser des esquives avec reliure. Ensuite, je vais utiliser plusieurs événements. Au début, je vais utiliser un événement saisi par la souris. Donc, pour lier le bouton, la méthode de reliure par points. Ici, je vais utiliser Enter, puis j'utilise la fonction Lambda Landa, E, impression, souris saisie. Ensuite, je vais utiliser Leave Event. Donc tapez le bouton, reliez les points, laissez Lambda, enfin la souris enfoncée, je vais utiliser l'événement de clic sur le bouton Tapez dix points blindés. Bouton 1, imprime les dents du bouton. Si je définis ce fichier et que j'exécute ce code dans un terminal, laissez-moi vous le montrer. Chaque fois que je passe mon curseur au-dessus du bouton, si j'entre le curseur de ma souris dans ce bouton, vous pouvez maintenant le voir imprimer saisi par la souris De même, si je retire mon curseur de ce bouton, il imprime le tour de la souris. Si je coche ce bouton, vous pouvez le voir s' imprimer, cliquez sur le bouton. Si je retire le bouton à nouveau, encore une fois, il imprime comme la souris, la souris entre et le bouton. C'est ainsi que plusieurs événements fonctionnent ensemble. Et si vous souhaitez dissocier un événement, oui, vous le pouvez. Pour cela, vous devez taper le bouton tn point Unwind Unbind One. Je tiens à dire que maintenant, si vous cliquez sur ce bouton, il n'imprimera rien. Laisse-moi te montrer. Donc, pour satisfaire à ce code dans mon terminal, et si je maintenais mon curseur, maintenant vous pouvez voir une empreinte, la souris saisie, la souris glissée Mais si je clique dessus, comme vous pouvez le voir, cela ne fonctionne pas car ici nous dissocions cet événement J'espère que vous comprenez maintenant comment nous pouvons l'utiliser. Merci d'avoir regardé cette vidéo Stune pour le prochain tutoriel 28. La mise au point, l'état de l'accroche et l'état du widget: Bonjour, les gars. C'est bon de te revoir. Il s'agit du dernier didacticiel lié à la gestion des événements, et dans ce didacticiel, nous allons apprendre le focus, grab et l'état de l'assistant. Parlons maintenant de la concentration. Focus détermine quel assistant reçoit l'événement clavier. Un seul magicien peut se concentrer à la fois. Et si je parle de méthodes de focalisation communes, alors nous avons un focus set. Cela permet à cet assistant de se concentrer sur le clavier. Ensuite, nous avons Focus Gate. Il est écrit le magicien qui se concentre actuellement. Enfin, nous avons la force de focalisation, travail de concentration forcée, même la fenêtre n'est pas active. Étudions la tactique et voyons comment fonctionne la concentration. Comme vous pouvez le voir, nous sommes dans l'éditeur de code de mon studio et nous créons déjà un fichier Python et nous créons déjà un fichier Python focus point pi et nous créons une fenêtre de base simple en utilisant Kiner Maintenant, je vais faire deux essais d'entrée. Donc, ici, je vais prendre deux champs de saisie au total, et j'ai déjà emballé ces deux champs de saisie, l' entrée un et l'entrée deux. Ensuite, je souhaite créer un bouton. Et chaque fois que nous appuyons sur le bouton, il se concentre, il met l'accent sur l'entrée deux. Pour cela, je vais définir un bouton variable, bouton égal à, je vais définir un bouton. Bouton et j'appuie sur ce bouton dans une fenêtre racine et notre bouton prend cette entrée de focus sur deux Apricma dans notre paramètre commun, nous utilisons une fonction Lambda Entrée Lambda à deux points, mise au point définie. Ici, nous utilisons la méthode de mise au point pour définir le focus sur le bouton deux. Chaque fois que nous appuyons sur le bouton, cette fonction Lambda met l'accent sur l'entrée deux Après cela, je vais emballer ce bouton. Je tape la méthode button point pack, et je vais définir celle-ci. Maintenant, transformons le code dans notre terminal. haut de ce code dans notre terminal, vous pouvez voir ici par défaut n' y a pas de focus dans notre champ de saisie. Mais si je clique sur l'entrée 2, comme vous pouvez le voir, après avoir cliqué sur ce bouton, commence à me concentrer sur le champ de saisie 2. Si je clique en dehors de cette fenêtre n'importe où en dehors de cette fenêtre, elle perd son focus. Maintenant, concentrons-nous sur le champ de saisie 1. Lorsque je clique sur le corps extérieur de cette fenêtre, je souhaite me concentrer sur le premier champ de saisie. Revenons au code. Pour cela, je vais taper entry one dot set focus, et je vais définir ce fichier. Si je réunifie ce code, vous pouvez maintenant voir Default Bifaul se concentrer sur le champ de saisie 1 Si je clique sur ce bouton, il se concentre maintenant sur le champ de saisie deux. Maintenant, relions en appuyant sur une touche pour afficher le focus actuel Pour cela, je vais utiliser la méthode root point bind. Ici, je vais lier root point bind et j' utilise n'importe quelle méthode clé, et j'appelle cette fonction show focus. Ensuite, nous devons définir cette fonction. Pour définir la fonction, ils indiquent une focalisation, même égale à zéro. Ensuite, insérez cette méthode, ici nous devons obtenir le focus actuel. Pour cela, je vais définir un courant variable, courant égal à la porte de focalisation du point racine. Ici, j'utilise la méthode, méthode de la porte de focalisation pour obtenir laquelle est focalisée. Ensuite, je veux épingler le statut actuel à partir de type print, accent est actuellement mis sur virgule canine, je vais définir cela Si j'exécute le code dans notre terminal, maintenant, si j'appuie sur n'importe quelle touche, une touche telle que je vais appuyer sur A, maintenant vous pouvez voir imprimer, accent est actuellement mis sur la saisie. Si j'appuie sur ce bouton et que j' appuie sur n'importe quelle touche telle que G, maintenant j'imprime, l' accent est mis sur l'entrée deux. Ici, nous associons le focus à l'événement du mot-clé et nous obtenons et nous obtenons la valeur du focus . Lequel est ciblé ? Quel champ de saisie est ciblé ? Parlons maintenant de Grab. Capturez tous les événements pour un assistant spécifique. C'est utile pour les modèles de dialogue dans lesquels vous souhaitez bloquer l'interaction avec d'autres fenêtres, sinon avec les assistants Je veux dire que cela va créer une autre fenêtre différente pour exécuter autre chose. Tant que vous n'avez pas fermé celui-ci, vous ne pouvez pas revenir à l'original. Si je parle de sa méthode, nous avons la méthode grab set, la méthode grab release, la méthode grab current. Méthode Grab set, capture tous les événements jusqu'à leur publication. Libérez, relâchez la capture et renvoyez maintenant l' assistant qui a saisi. Laissez-moi vous montrer la démonstration de la façon dont nous pouvons l'utiliser. Encore une fois, je suis de retour dans l'éditeur de code de mon studio utilisateur et je crée un fichier Python, récupère le point pi et je crée la fenêtre de base. Dans un premier temps, je vais définir un bouton permettant d' ouvrir une nouvelle boîte à modèles, sinon des modèles. Je suis en train de définir le bouton comme un bouton. À l'intérieur, nous le plaçons dans une fenêtre racine, puis le texte de notre bouton est open model, et il va commander cette méthode, open model. Cette fonction, ouvrez le modèle, et j'emballe ce bouton. Nous devons maintenant définir que nous pourrions définir cette fonction. Je vais donc définir ici la fonction, Dave ouvre le modèle. Ensuite, à l'intérieur de ce capot mathématique, je vais définir ici la boîte à modèles. Pour cela, pour créer la boîte à modèles que je vais utiliser, je vais définir un modèle variable, modèle étant égal à l'étiquette supérieure, et je vais le cadencer dans une fenêtre racine. Ensuite, je vais définir titre et la géométrie de ce modèle. Après avoir défini le titre du modèle et la géométrie du modèle, je vais définir une étiquette. Étiquetez et je place cette étiquette à l'intérieur du modèle, je dis texte et j'ai dit texte de niveau, fermez-moi avant de revenir à la fenêtre principale. Nous devons fermer le modèle avant de revenir à la fenêtre principale. Après cela, nous devons créer le bouton de fermeture. Donc, ici, je vais définir le bouton de fermeture. Et comme vous pouvez le voir, dans la commande, nous utilisons la méthode model point destroy. Cette méthode va détruire le mode. Ensuite, nous devons capturer tous les événements de cette fenêtre. Pour cela, nous devons utiliser la méthode model dot grab set. Ici, je vais définir le modèle Dot Grab Set. Il capture tous les événements de cette fenêtre. Après cela, une fois la fenêtre ouverte, nous devons nous concentrer sur ce mode. Pour cela, nous devons utiliser la méthode de mise au point par ensemble de points du modèle. Ici, je vais définir la focalisation par ensemble de points du modèle pour mettre l'accent sur le modèle. Ensuite, je vais suspendre l'exécution jusqu'à la fermeture du modèle. Pour cela, nous devons utiliser la méthode des fenêtres humides, un certain type de fenêtre humide, et je vais la placer à l'intérieur du modèle. Je vais configurer ce fichier. Ce fichier est configuré, vous le trouverez sur notre terminal, et comme vous pouvez le voir dans notre fenêtre, nous avons un nom de bouton ouvert en modèle. Si j'appuie sur ce bouton, comme vous pouvez le voir, cela ouvre une fenêtre de modèle. Pity Fall a également mis l'accent sur ce modèle de fenêtre. C'est pourquoi il est mis en évidence. Et comme je vous l'ai dit, j' utilise ici la méthode grab point set. La méthode grab set force tous les clics et les pressions de touches sur la fenêtre du modèle, et non sur cette fenêtre Si j'essaie de cliquer sur ce bouton, comme vous pouvez le voir, cela ne fonctionne pas. Celui-ci est maintenant actif. Maintenant, nous nous concentrons entièrement sur cette fenêtre jusqu'à ce que vous la fermiez. Donc, si j'appuie sur le bouton de fermeture, sinon, je le ferme, alors nous avons retrouvé le focus dans la fenêtre principale Maintenant, encore une fois, nous pouvons cliquer sur ce bouton et ouvrir un nouveau modèle. C'est donc ce que nous pouvons faire avec la méthode Grab set. Maintenant, permettez-moi de vous montrer une autre démonstration de grab. Ici, je vais utiliser la méthode Grab Release. Je crée donc ici un autre fichier Python grabto point Pi, et ici je vais expliquer comment nous pouvons utiliser Grab set et la méthode grab Release ensemble Dans un premier temps, dans cette fenêtre, je vais définir un bouton. Je définis donc ici un simple bouton en utilisant cette variable BTN et je tape, clique sur M. Ensuite, je vais définir un autre bouton, qui va déclencher un événement de verrouillage Je définis donc ce bouton, bouton et je teste ce bouton dans une fenêtre racine et notre bouton prend un événement de capture. Et celui-ci et ce bouton commandent cette fonction, log event. Maintenant, nous devons travailler sur cette fonction. Nous devons créer et définir la fonction. Mais je vais le définir plus tard. Créons un autre bouton. Ici, je vais créer un autre bouton, qui déclenchera l'événement grab ? Pour cela, encore une fois, je définis ce bouton et le texte de notre bouton est release event et il va commander cette méthode, release event. Jusqu'à ce point, je vais utiliser un niveau pour imprimer notre statut. Je définis un statut variable, statut étant égal au niveau et je le place dans une fenêtre racine et notre texte n'est pas actif et j'emballe ce statut. Ensuite, je vais définir la fonction de journalisation des événements et la fonction d'événement de publication. C'est ce que nous allons faire. Dans notre fonction de journalisation des événements, je vais configurer le Grab. Dans la méthode d'événement Log, cliquez sur le bouton Grab set. Maintenant, une fois que Grab est actif, les ticks ne fonctionnent que sur ce bouton. Je veux montrer le statut de notre niveau. Pour cela, nous devons configurer ce stata. Je vais étiqueter le point d'état Cfig et je change le texte du statut égal à text égal à grab is active Cliquez sur W sur ce bouton. De la même manière, nous devons travailler sur la méthode des événements de publication. Ici, je vais définir cet événement, cet événement de sortie, cet événement sortie de cassette, ce lancement par bouton. Après la publication de la capture, le statut va également changer. Pour cela, encore une fois, tapez un texte de configuration à points égal à grab released Vous pouvez cliquer n'importe où. Et je vais configurer ce fichier. Exécutons maintenant le code dans notre terminal. Quelqu'un pour appuyer sur le bouton Exécuter. Comme vous pouvez le voir, cette fenêtre s'ouvre et nous avons plusieurs boutons. Maintenant, vous pouvez voir dans notre statut qu'aucune capture n'est active. Je vais maintenant cliquer sur l'événement de publication. Si je coche Libérer l'événement, maintenant il s'imprime, lance la publication. Vous pouvez cocher n'importe où. Maintenant, nous pouvons cliquer n'importe où. Nous pouvons appuyer à nouveau sur le bouton de lancement de l' événement. Mais si vous cliquez, saisissez même le bouton. Maintenant, notre statut a changé. J'imprime, la saisie est active. Les clics ne fonctionnent que sur ce bouton. Maintenant, si j'essaie de régler, cela ne fonctionne pas. Même si j'essaie d'appuyer sur le bouton SEM, saisir, mais ça ne marche toujours pas. Cela ne fonctionne que là-dessus, cliquez sur le bouton « Cliquez sur moi ». Je tiens à dire sans attendre tous les boutons fonctionnent correctement. Mais avec grab only, cliquez sur le bouton « Cliquez sur moi » pour répondre. Celui-ci. Si je clique n'importe où dans notre fenêtre, elle prie toujours, cliquez sur le bouton M. Jusqu'à ce que nous relâchions la capture, les autres boutons sont ignorés. Voilà ce que l'on peut faire avec le crabe. C'est tout pour ce tutoriel. Dans le prochain tutoriel, nous allons parler de Wizard State. Merci d'avoir regardé cette vidéo. Restez à l'affût pour notre prochain tutoriel. 29. État de l'widget State: Salut, les gars, c'est bon de vous revoir. Il s'agit d'un autre didacticiel lié à la gestion des événements Kiner. Aujourd'hui, dans ce tutoriel, nous allons apprendre l'état du magicien. L'option d'état des interassistants contrôle si un assistant est désactivé ou s'il s'agit d'un état Hobart spécial Si je parle des états communs, normal, désactivé et actif. Normal est entièrement fonctionnel. désactivation de la rétrogradation ne peut pas être cliquée ou saisie T. Un actif est spécialement utilisé pour le style, Henry passe le pointeur de la souris dessus Permettez-moi maintenant de vous montrer un exemple avec l'état du bouton Wizard. Comme vous pouvez le voir, c'est l'éditeur de code du studio REM, et ici nous créons un simple fichier Python. Les boutons indiquent le point pi et nous créons une fenêtre intermédiaire et nous Dans un premier temps, je vais définir un bouton. Ici, je vais associer VTN à button et je vais le mettre dans une fenêtre racine, et ici j'ai dit Button Taste Enable. De plus, j'appelle une fonction Lambda en utilisant paramètre commun Lambda et elle va peindre cette instruction, un kit de boutons Ensuite, j'emballe ce bouton. Ainsi, chaque fois que nous appuierons sur ce bouton, cette ligne s'affichera . Cliquez sur le bouton dans notre terminal. Ensuite, nous devons créer un autre bouton à bascule qui déclenchera une fonction Ici, je vais définir un autre bouton de bascule, le bouton bascule étant égal au bouton, et le texte de notre bouton est activé et désactivé Et ce bouton va déclencher ce bouton de bascule de fonction. Maintenant, cette fonction va désactiver et activer ce bouton, le premier bouton. Donc, ici, je vais définir la fonction, appuyer sur le bouton de bascule Et dans le cadre de cette fonction, je vais utiliser l'état des hanches. bouton Herodoty I à l'intérieur du carré s a un état égal à la normale Si cet état est normal, alors dans cet état de hanche, je vais configurer le bouton. Je vais configurer cette variable de bouton. Ici, je vais configurer le total en paramètre. Donc, pour taper tn point config dans le processus rond, je vais d'abord attribuer un nouvel état de paramètre, et je vais le désactiver. Je vais également modifier le texte de ce bouton qui est désactivé. Cela fonctionne si la condition correspond à cela, si c'est normal. Ensuite, dans nos conditions actuelles ici, je configure la configuration des points de bouton, l'état devient normal et le texte active l'égging Maintenant, notre bouton à bascule ressemble à un interrupteur. La première fois, si nous appuyons dessus, le bouton sera désactivé et si j'appuie à nouveau sur le bouton à bascule, le bouton redeviendra normal Configurons le fichier et exécutons le code dans les délais impartis. Pour exécuter ce code, comme vous pouvez le voir, nous avons un bouton appelé Activer. Si j'appuie sur le bouton Activer, vous pouvez maintenant remarquer dans notre terminal que le bouton d'impression est actionné. Maintenant, ça marche bien. Mais si je clique sur Désactiver maintenant, le statut de ce bouton devient désactivé. Vous pouvez également voir le texte de ce bouton. Maintenant, si j'essaie d'appuyer sur le bouton, ça ne marchera pas. Mais si j'appuie à nouveau sur le deuxième bouton, il redevient activé. Maintenant, ça marche bien. Voici un exemple de l'état des boutons. Permettez-moi maintenant de vous montrer un autre exemple avec entry iz state. Comme vous pouvez le voir, je crée un autre assistant de saisie de fichiers Python, underscostate point Pie et je crée une fenêtre simple de base premier temps, je vais prendre un assistant de saisie, type d'entrée équivalent à une entrée, et je vais emballer cette entrée. Ensuite, je vais définir un bouton qui va appeler le verrouillage et la fonction Lo. Je vais définir le bouton, bouton égal à bouton et notre bouton prend cette entrée et cette commande dans le journal, et il appellera cette fonction, Log Unlock. Ensuite, j'emballe ce bouton. Ensuite, nous devons définir cette fonction. Je vais donc définir la fonction, Dave, verrouiller et déverrouiller. Ensuite, dans cette fonction, je vais utiliser bcdion Ici, je vais taper une entrée, état égal à la normale, puis je veux configurer l'assistant de saisie. Ici, nous devons taper entry point config, state égal à disabled. Je vais le désactiver. Je vais également modifier le texte du bouton. Je vais y arriver. Le point C fig t du bouton est égal pour déverrouiller l'entrée. Ensuite, dans notre partie s, certains types sont dans la condition s, je vais rendre celle-ci normale. Entrez la configuration des points, je vais la rendre normale et je veux aussi changer le texte du bouton. Je tape donc le point C fig t égal à l'entrée du verrou. Je vais configurer ce fichier. Après avoir défini ce fichier, je vais exécuter ce code dans notre terminal. Après avoir cliqué sur le bouton Exécuter, vous pouvez voir ici notre champ de saisie. Maintenant, si j'essaie de saisir quelque chose comme ABCD, peu importe, cela fonctionne bien Mais si j'enregistre cette entrée, si je clique sur ce bouton Journal, bouton LogEntry, vous pouvez maintenant voir que nous ne pouvons rien mettre ou supprimer de ce flux d'entrées Et si vous voulez le déverrouiller encore et encore en appuyant sur ce bouton, déverrouillez l'entrée. Maintenant, il se déverrouille à nouveau. Maintenant tu peux faire ce que tu veux. Voici donc l'exemple avec l'assistant de saisie. Je vais maintenant vous montrer le dernier exemple. Dans cet exemple, nous allons parler de l'état actif. Je crée un fichier Python actif underscostate point Pi. Comme je vous l'ai dit plus tôt, l'état actif est principalement destiné styliser le bouton lorsque vous le survolez ou le léchez Permettez-moi de vous montrer l'exemple. Dans un premier temps, je vais définir un bouton. Comme vous pouvez le voir, ici je définis un bouton, et notre bouton prend le dessus sur moi, et notre bouton, la couleur de fond du bouton, est bleu clair. Et j'emballe ce bouton avec un rembourrage de 20 pixels chez YxS. Maintenant, après avoir défini ce fichier, si je clique sur ce bouton, vous pouvez voir le bouton ici. Si je clique sur ce bouton, vous pouvez voir quand le bouton devient actif, la couleur de fond du bouton devient grise. Vous pouvez voir la couleur d' arrière-plan gris de ce bouton car il s' agit de la couleur par défaut, mais je souhaite changer la couleur lorsque le bouton sera actif. Maintenant, le bouton est actif parce que j'appuie sur le bouton avec le bouton du rouge à lèvres de ma souris. Si je le soulève, encore une fois, il redevient normal et sa couleur de fond devient bleu clair. Je souhaite donc changer la couleur d'arrière-plan active. Pour cela, nous devons utiliser un paramètre appelé Bagram actif et j' attribue ici une couleur vert clair Maintenant, une fois que j'ai ouvert ce fichier, si je repasse ce code et que j' essaie de cliquer sur ce bouton, si j'active ce bouton, vous pouvez voir la couleur de fond devenir vert clair C'est donc de cela que je parle. Il s'agit de l'utilisation de l'état actif. J'espère que c'est clair pour toi maintenant. Merci donc d' avoir regardé cette vidéo. Restez à l'affût de notre prochain chapitre. 30. Mini projet d'application de dessin avec méthode d'événement et de liaison: Bonjour, c'est bon de voir vos valises. Aujourd'hui, nous allons créer une application intter simple en utilisant la méthode bind En gros, je veux montrer comment nous pouvons utiliser la méthode biliaire dans nos projets. Ici, nous allons créer une application de dessin simple. Vous pouvez tracer des lignes à l'aide de votre souris. À l'aide de la souris, tracez une ligne sur le canevas. Vous pouvez également changer la couleur de peinture lorsque vous placez une touche particulière. Permettez-moi de vous montrer la démonstration ce que nous allons construire aujourd'hui. Comme vous pouvez le constater, il s'agit de notre fenêtre racine principale. Dans cette fenêtre, nous avons un canevas, puis une étiquette. Maintenant, la couleur actuelle est sélectionnée en noir. Il s' agit de la valeur par défaut. Si j'essaie de tracer une ligne, vous pouvez maintenant la voir tracer une ligne dans notre canevas. Pour tracer une ligne, il faut déplacer la souris dans la zone du canevas. Ensuite, nous devons appuyer sur la touche gauche et faire glisser notre souris. Cela va tracer une ligne. Maintenant, vous pouvez remarquer qu'il trace la ligne en noir. Vous voulez maintenant changer de couleur. Maintenant, vous décidez d'utiliser la couleur rouge. Si j'appuie sur R, comme vous pouvez le voir sur notre étiquette, couleur actuelle est imprimée en rouge. Maintenant, si j'essaie de tracer une ligne, vous pouvez voir une ligne de couleur rouge. De même, si vous souhaitez utiliser la couleur verte, vous devez appuyer sur G. Maintenant, vous pouvez le voir dessiner une ligne de couleur verte. Si vous voulez du jaune, vous devez appuyer sur Y. Maintenant, la couleur actuelle est le jaune Vous pouvez voir la ligne jaune. Pour le bleu, vous devez appuyer sur B. Maintenant, la couleur actuelle est le bleu. De même, si vous voulez du violet, couleur actuelle est le violet et vous tracez une ligne de couleur violette. Si vous voulez revenir à la couleur noire, dans ce cas, vous devez passer K. Comme vous pouvez le voir, nous pouvons changer couleur et tracer une ligne. C'est une application de dessin très simple, et je crée cette application à l'aide de la méthode Bind pour comprendre comment fonctionne la méthode de liaison, comment fonctionnent les événements du clavier et comment fonctionnent les événements de déplacement de la souris. Commençons donc par la pratique. Enfin, nous allons commencer à coder. Comme vous pouvez le voir, nous créons le projet de fichier Python point pi. Tout d'abord, nous importons le module Kiner, nous importons tout. Ensuite, nous créons la fenêtre principale. Dans un premier temps, nous créons ici une variable d'instance de classe TK et la variable est root. Maintenant, root devient la fenêtre principale. Ensuite, nous définissons le titre du point racine et nous prononçons ici le nom de notre projet, dessinons et changeons de couleur avec la méthode de liaison. Ensuite, nous définissons une géométrie pour cette fenêtre, W 500 et hauteur 400. Enfin, nous exécutons notre boucle principale. Maintenant, dans un premier temps, nous devons créer un canevas pour la zone de dessin. Pour cela, je vais définir une variable et le nom de notre variable est Canvas. Attachez donc Canvas égal à Canvas. Ensuite, à l'intérieur de la barre ronde, il est dit : « Je vais placer ce canevas dans la fenêtre racine », puis j'ai dit « couleur de fond » La couleur de fond de notre toile est le blanc. Ensuite, nous définissons la largeur de ce canevas (largeur 480 pixels) et hauteur (320 pixels). Après cela, je vais emballer cette toile. Tapez canvas point pack et ici j' attribue un peu de rembourrage à YxS. Je vais définir ce fichier Après avoir défini ce fichier, si j' exécute ce code dans notre terminal, voici à quoi ressemble notre zone de canevas dans cette fenêtre. Ensuite, imprimez une étiquette d'état pour la couleur d'arrière-plan. Donc, ici, je vais définir un label. Donc, pour taper l'étiquette d'état égale à l'étiquette, nous la mettons dans une fenêtre racine, et ici, je vais mettre ce texte, de couleur noire actuelle. Ensuite, j'emballe le statut, cette étiquette de statut. Si je définis ce fichier et que je lance cette fenêtre dans un terminal, vous pouvez maintenant voir l'étiquette d'état. La couleur actuelle est le noir. Ce serait la couleur par défaut de notre pinceau. Après cela, nous devons stocker la couleur actuelle. Nous devons stocker la couleur actuelle dans une liste modifiable, afin qu'elle puisse être modifiée en fonction Tout d'abord, je vais taper un single et le commenter. La couleur actuelle est stockée dans une liste modifiable, afin qu'elle puisse être modifiée dans les fonctions Je vais donc commencer la couleur actuelle dans une liste, et je vais changer la couleur actuelle à l' aide d'une fonction. Ensuite, nous devons lier le canevas et appeler un événement qui va s' afficher dans ce canevas. Pour cela, tapez un commentaire en héros, faites glisser la souris pour Ensuite, je vais lier la méthode de liaison par points de Canvas, et dans les runras, j'utilise cet événement courant Ici, j'utilise cet événement de souris B one motion. Cela signifie que vous devez faire glisser la souris avec le bouton de levage. Donc, lorsqu'il a déclenché cet événement à l'aide de notre souris, il va appeler cette fonction draw. J'utilise donc ici l'événement de la souris. Ensuite, je vais utiliser un événement clavier pour changer la couleur, pour changer la couleur de notre pinceau. Pour cela, nous devons taper Root point bind et, dans les ronders, herro utiliser cet événement clé d'événement Cela signifie n'importe quel événement clé qui va et va déclencher cette fonction, changer de couleur. Maintenant, en fonction de la position de la souris, cette fonction de dessin va tracer la ligne. Pour cela, je vais définir la fonction. Ici, je vais définir la fonction de dessin, appuyez sur Dessiner. Et je vais réussir l'événement. Dans notre cas, un mouvement, voire un événement de mouvement. Il se déclenche lorsque vous cliquez et faites glisser la souris sur ce canevas. Ensuite, nous extrayons les positions XX et YXS de notre Carson. Pour cela, je vais définir deux variables X et Y, X égal à l'événement X et Y égal à l'événement Y, et nous stockons les coordonnées dans cette variable. Ensuite, nous devons tracer des lignes. Pour cela, nous devons utiliser la méthode create like. Alors tapez, Canvas, Canvas point, Createine, celui-ci. Ensuite, à l'intérieur des versets ronds , nous devons d'abord définir le point de départ. Je vais passer XX est la valeur et YxS la largeur. Passez donc X, Y. C'est le point de départ Également là pour passer le point final. Pour cela, jusqu'au coma , je veux créer le point final à un pixel près de la création d'un petit point. Pour cela, je vais ajouter X à un. Je vais ajouter un testament avec toutes les coordonnées. Y plus un. Puis, virgule supérieure, je vais définir la couleur de remplissage Pour un remplissage par couleur de remplissage égal à ici, je vais utiliser la couleur actuelle. Celle-ci est la couleur actuelle que nous avons définie. Je copie la valeur, la couleur actuelle, la variable, et ici je vais attribuer la couleur actuelle, contrôle V. Ensuite, à l'intérieur du carré, je vais définir l'index Comme vous pouvez le voir à la fois, indiquez qu'il ne transmettra qu'une seule valeur. Je vais passer le numéro d' index zéro. Ensuite, vous devez définir. Avec le trait de ligne. Pour cela, je vais taper avec, je vais utiliser trois pixels Je vais configurer ce fichier. De la même manière, je vais définir une autre fonction. Je vais taper Dave et cette fonction permet de changer la couleur de changement de couleur. Au cours des rondes, je vais passer le clavier, véritable épreuve de clavier. Ensuite, dans le polen, ici je vais taper fa, je vais taper pass Et je vais configurer ce fichier. Je vais maintenant définir ce fichier et exécuter ce code car nous devons vérifier s'il trace correctement ou non notre ligne. Par défaut, comme je vous l'ai dit, il va sélectionner la couleur noire car les cheveux sont noirs, la couleur actuelle est noire. Je vais donc exécuter ce fichier. Et si je passe le pointeur de la souris dessus dans ce canevas et que je le place, cliquez et faites glisser, comme vous pouvez le voir, tracez une ligne Nous avons donc réussi à tracer une ligne. Il ne reste plus qu'à changer de couleur. Passons au code. Vous pouvez maintenant remarquer ici que nous utilisons l'événement du clavier. Chaque fois que nous louons une touche de notre clavier, elle déclenche cette fonction. Maintenant, nous devons obtenir la valeur clé, laquelle est louée. Pour obtenir la valeur, je vais définir ici une variable appelée clé, clé égale au caractère point de l'événement, et je vais convertir ce caractère en minuscule J'utilise un type R, il va le convertir en minuscules Ensuite, je vais définir un dictionnaire des couleurs. Pour cela, je vais définir une variable de couleurs égales à des couleurs égales à celles de l'intérieur du Cls. Nous lui attribuons un dictionnaire. Pour R, la valeur du dictionnaire est rouge. F G, c'est vert. Pour B, c'est bleu, Y est jaune, pour Ps violet, pour O c'est orange et pour K c'est noir. Nous devons maintenant changer la couleur actuelle avec les couleurs sélectionnées. Pour cela, je vais utiliser la condition EP si K en couleurs. Ensuite, dans cette condition EP, couleur actuelle est égale au point K. Ici, nous sélectionnons l'indice de couleur actuel, qui est zéro et je vais le remplacer par la valeur que nous transmettons. Supposons que si l'utilisateur appuie sur G, il remplacera la couleur noire actuelle G. Ici, nous accédons à la couleur en utilisant le dictionnaire, les couleurs, et à l'intérieur des bases carrées nous passons la valeur clé. À partir de ce dictionnaire, il va obtenir la valeur et remplacer la couleur actuelle par celle-ci. Après cela, vous souhaitez également changer la couleur de l'état. Pour cela, ici, je vais taper status label dot config Method. Et d'abord, je vais changer le texte, et j'utilise la couleur actuelle d'Epstring à voitures à l'intérieur du troupeau de Carlos pour passer à la La couleur actuelle à l'intérieur du carré résiste à l'indice zéro. Maintenant, s'il devient vert, sinon bleu, il remplacera le noir par du bleu sinon vert. Nous devons également gérer l'erreur. Si l'utilisateur passe une autre touche telle que la touche Scape, touche Shift ou toute autre touche, nous devons la gérer. Nous devons imprimer la valeur. Pour cela, dans notre partie s, à l'intérieur du bloc s, je vais taper un texte status level.com égal à nnn key, et ici nous allons imprimer la Quel type d'utilisateur de valeur ? Supposons que le type d'utilisateur A ne corresponde pas à notre dictionnaire. Ensuite, il va imprimer la clé Nun A, et je vais définir ce fichier Après avoir défini le fichier, exécutons le code dans notre terminal et voyons s' il fonctionne correctement ou non. J'exécute donc ce code dans mon terminal et vous pouvez voir ici la fenêtre Canvas. Par défaut, la couleur actuelle est celle-ci. Si je trace une ligne, elle trace la ligne en noir, mais je veux utiliser la couleur rouge. Pour cela, nous devons utiliser, je vais appuyer sur la commande R. Lorsque j'appuie sur R, vous pouvez maintenant voir que la couleur actuelle est le rouge. Maintenant, si je trace une ligne, vous pouvez voir que la couleur de la ligne est rouge. De même, si vous souhaitez changer la couleur, exemple si vous souhaitez utiliser la couleur verte, vous devez appuyer sur G. Maintenant, si je trace une ligne, vous pouvez voir la ligne de couleur verte. Si vous voulez du bleu, vous devez appuyer sur B et vous pouvez voir ici la ligne de couleur bleue. Si vous voulez de l'orange, vous pouvez appuyer sur O. Maintenant, vous pouvez voir la ligne de couleur orange et si vous voulez à nouveau du noir, vous devez féliciter K. Après avoir appuyé sur K, vous pouvez à nouveau voir la ligne de couleur noire. Voici comment vous pouvez changer de couleur dans notre canevas. J'espère que ce petit projet vous plaira. Merci d'avoir regardé cette vidéo, restez à l'affût de nos prochains studios. 31. Variables Tkinter et liaison de données: Bonjour, les gars. Contente de te revoir. Encore une fois, je suis de retour avec un nouveau tutoriel, et aujourd'hui dans ce tutoriel, nous allons apprendre les variables Kiner et la liaison de données Kinar fournit des classes variables spéciales telles que stringware, intvariable, double ware, boolean Nous le connaissons déjà. En gros, il agit comme une enveloppe autour des valeurs Python normales, ce qui permet d'évaluer la liaison de données entre votre code Python et les assistants Cela signifie que lorsque la variable change, l'assistant se met à jour automatiquement lorsque la valeur de l'assistant change, la variable est automatiquement mise à jour. Si nous vous montrons les classes de variables, ce sont toutes des classes de variables. Nous le connaissons déjà et nous utilisons déjà dans nos précédents tutoriels. Stringwar Itware, double ware, Bollenware, stringwar stockaient du texte sinon du texte sous forme de chaîne, comme Hello, Itware stockait uniquement des augmentateurs, tels que 42, double ware, stockez des nombres flottants, tels que le nombre décimal 3,14 Et les booléens étaient stockés de part et d'autre. Permettez-moi maintenant de vous montrer un exemple où je vais utiliser tous les types de variables. Comme vous pouvez le voir, je définis ici une fenêtre Kinker simple de base dans ce fichier Python, et le nom de notre fichier Python est KinkerUnderscore Dans un premier temps, dans cette fenêtre, je vais définir quelques variables. Je vais définir une variable de chaîne, une variable incisive, une variable double et une variable de Bollin Au début, je vais définir une variable de chaîne, string were equal to Tkt string ware et dans le run brrass , j'ai dit value, ensuite, je vais définir la variable Itiser, intvare égal à tat in ware et je vais définir la valeur et ici je vais définir la Ensuite, je vais définir le double ware. Je veux définir la valeur féminine. Les doubles sont égaux à k double ware. Dans la valeur rundress égale à 3,14, je vais enfin définir la valeur booléenne Les valeurs booléennes étaient égales à la valeur de Bollenvre égale à vrai. Ensuite, je vais définir quelques ensembles liés aux variables. Pour cela, je vais taper une seule commande en, UZx liée à des variables Ensuite, je vais prendre le champ de saisie pour la variable de chaîne. Tapez donc t point jury et je vais placer le champ de saisie dans cette fenêtre racine. Ensuite, prend une variable égale à la chaîne où et je range cette variable. Pour la variable intsor, je vais utiliser la boîte de rotation. Je vais essayer de faire tourner Box, je vais le placer dans une fenêtre root. Ici, je vais définir la valeur minimale, je veux définir à partir de la valeur zéro et valeur la plus élevée 100, deux valeurs 100. Et je vais définir la variable de goût int ware. C'est dix ans. Par défaut, il en sélectionne déjà dix. Ensuite, je vais prendre un autre champ de saisie pour les goujons. Tapez l'entrée du ticket, et je vais le placer dans une fenêtre racine et prendre une variable égale à Dwelwre. Je remplis ce champ de saisie Ensuite, pour le Bullen ware, je vais cliquer sur le bouton de vérification Bouton de vérification en T, je vais le placer dans une fenêtre racine, et notre bouton de vérification prend cet âge. J'ai dit la variable égale à Wollen War C'était vrai ou faux. Vous pouvez maintenant remarquer que chaque assistant est lié à une variable. Maintenant, après avoir défini ce fichier, si j'exécute ce code dans notre terminal, vous pouvez voir le résultat. Il s'agit de notre premier champ de saisie. Voici la boîte de rotation, notre deuxième champ de saisie, et voici le bouton à cocher. Ensuite, je vais définir un bouton. Cela va déclencher une fonction et elle pourrait imprimer toute la valeur dans notre terminal. Je vais donc définir le bouton ici. Aux boutons, et je vais passer le bouton dans une fenêtre racine, texte est égal pour afficher les valeurs. Puis commande égale pour afficher les valeurs, et j' emballe ce bouton. Et maintenant, nous devons définir la fonction show value. Vous copiez donc le nom de la fonction, et je vais le définir ici. Ils affichent des valeurs, puis à l'intérieur de cette fonction, à l'intérieur de cette fonction, je vais imprimer toutes les valeurs des variables, telles que la variable chaîne, la variable int, la variable double et la variable booléenne Donc, pour la première variable, je vais taper print string et hemo type stringw dot gate En utilisant la méthode string point Gate, nous pouvons obtenir une valeur à partir de cette variable. Nous le savons déjà. J'essaie de vous le montrer et de la même manière, j'obtiens la valeur de toutes les variables telles que la valeur de la variable int, la valeur variable double et la valeur de la variable booléenne Nous devons utiliser gatewthod pour obtenir la valeur d'une variable . Je vais configurer ce fichier. Après avoir défini ce fichier, si j'exécute ce code dans mon terminal et que j'appuie sur le bouton, affiche la valeur. Maintenant, vous pouvez voir dans mon terminal qu'il affiche toutes les valeurs des variables. String hello, in ten, double 3,14 et Boolean Si je ne suis pas d'accord avec ce bouton de vérification et que je le félicite, encore une fois, vous pouvez maintenant voir dans notre variable booléenne qu'elle tombe Voici l'exemple avec tous les types de variables. J'espère que c'est clair pour toi maintenant. Maintenant, permettez-moi de vous montrer un autre exemple. Maintenant, permettez-moi de vous montrer un autre exemple mise à jour en temps réel à l'aide de la méthode d'ajout de trace par points. Un objet variable tel que Stringware intserware possède une méthode appelée point trace add qui exécute une fonction automatiquement chaque fois que une fonction automatiquement chaque fois Il est exécuté automatiquement. Laissez-moi vous montrer comment nous pouvons l'utiliser. Donc, d'abord, je vais définir un string ware. Pour cela, je vais définir une variable text ware égale à tdt string ware Hemo said nothing as value Ensuite, je vais prendre un champ de saisie. Ici, je prends le champ de saisie dans la variable d'entrée, et j'ai lié ce champ de saisie à cette variable de texte. Ensuite, je vais définir une étiquette qui imprimera la valeur actuelle. Je vais taper label égal à tkdot label, et je le place dans une fenêtre racine, et dans un texte, tapez quelque chose au-dessus Et j'utilise une vraie police et la taille de police est de 14. Et puis j'emballe cette étiquette. Maintenant, pour déclencher la fonction trace at, je ne vais utiliser aucun bouton. Je vais lier Text Ware, point, trace à. Ici, j'utilise la méthode. Le texte est un point, un point, un trait. À l'intérieur de la runbra, il est écrit, et j'appelle cette fonction sur texchange Quand j'écris quelque chose dans le champ de saisie, cela met la valeur actuelle à cette variable. Fondamentalement, la variable de texte renvoie à la fois à l'entrée et à la fonction Web d' appel. Et lorsque la variable change dans le champ de saisie, cette méthode déclenche et appelle cette fonction. Et maintenant, nous devons définir le texte sur la méthode de modification. Cette fonction, Suntape, enregistre le texte en cas de modification. À l'intérieur des ronds, j'utilise ici des arcs en étoile. Si les paramètres supplémentaires ne vous intéressent pas, vous pouvez utiliser des arcs en étoile. Après cela, nous avons configuré cette configuration de point de niveau d'étiquette, configuration de point de niveau, et je souhaite changer le texte en valeur. Je sélectionne le paramètre de texte, et à l'intérieur de celui-ci, j'utilise la valeur actuelle d'Estre dans le calibrass, nous devons obtenir la valeur actuelle en utilisant la méthode de la porte Je tape une porte à deux points. Et si je définis ce fichier et que j' exécute ce code dans mon terminal, vous pouvez voir la fenêtre ici. Maintenant, si je tape quelque chose dans le champ de saisie, supposons un, deux, trois, quatre, comme vous pouvez le voir, cela s'imprime instantanément sur notre étiquette. Je le montre sur notre étiquette. Tu peux taper n'importe quoi. Cela peut être un caractère, un point, peu importe. Voici l'exemple de mise à jour en temps réel dont nous retracons la méthode. Elle a déclenché la fonction lorsque la valeur de la variable est modifiée. Je ne travaille qu'avec des variables. C'est tout pour ce tutoriel. Merci d'avoir regardé cette vidéo, restez connectés pour notre prochain tutoriel. 32. Boîtes à message (messagebox) ): Bonjour, les gars. C'est bon de te revoir. Encore une fois, je suis de retour avec un nouveau tutoriel, et aujourd'hui dans ce tutoriel, nous allons travailler sur les boîtes de dialogue. Kinter est livré avec trois types de boîte de dialogue : boîte de message, boîte dialogue de champ et sélecteur de couleur À l'aide de la boîte de message, vous pouvez afficher les informations d'avertissement et d'erreur, et à l'aide de la boîte de dialogue de champ, vous pouvez ouvrir et enregistrer des fichiers. Et en utilisant le sélecteur de couleur, vous pouvez choisir n'importe quelle couleur Aujourd'hui, dans ce tutoriel, je vais parler de la boîte de message Le module de boîte de message Kinter est utilisé pour afficher une boîte de dialogue contextuelle avec un message et un bouton optionnel Si j'en parle de fonction commune, elle est livrée avec la fonction d'affichage des informations. Il est utilisé pour afficher les informations Papa, puis pour afficher l'avertissement. Il est utilisé pour avertir papa. Afficher zéro, il est utilisé pour afficher l'erreur papa. Posez une question. C'est écrit oui ou non. Ensuite, demandez à annuler. C'est écrit pour Forbes. Alors demande, oui, non. C'est écrit pour ou faux aussi. Enfin, nous avons demandé une nouvelle tentative d'annulation. Il est écrit par nos Fabs. Commençons par l'aspect pratique et voyons comment nous pouvons utiliser la boîte à déchets. Comme vous pouvez le voir, nous sommes dans l'éditeur de code de mon studio utilisateur, et je crée un ensemble de points principal pour un fichier Python et nous créons ici une fenêtre Kiner de base Ensuite, pour utiliser une boîte à déchets, nous devons importer une boîte à déchets. Je vais taper à partir de la boîte de dialogue Kinter Import. Après avoir saisi la boîte de message, je vais définir un bouton qui va déclencher une fonction. Donc, pour taper pk point button, je teste ce bouton dans cette fenêtre racine et notre bouton prend des cases Ts, show masses Et ce bouton commande cette fonction, montrez-le. Maintenant, nous devons définir cette fonction, afficher. Définissons maintenant la fonction. Donc ici, je vais définir Dave, tout afficher dans la fonction. Ici, dans un premier temps, je souhaite afficher des informations dans notre boîte de message. Donc, pour utiliser cette méthode, la boîte de message point Afficher les informations. Dans un premier temps, nous devons transmettre le titre. Dans notre cas, info. Ensuite, nous devons transmettre le message d'information. Si je définis ce fichier , que j'exécute ce code dans notre terminal et que j'appuie sur ce bouton, la boîte de dialogue s'affiche. Afficher les boîtes de message, ici vous pouvez voir la fenêtre d'informations, la fenêtre de message d'information. Si j'appuie sur OK, cette fenêtre se ferme. Il s'agit donc du premier exemple de boîte de dialogue de message. Maintenant, permettez-moi de vous montrer un avertissement. Je voudrais commenter cette ligne, et ici, je vais taper message box point show warning Passez d'abord pour transmettre le titre, puis pour transmettre les messages d'avertissement. Il s'agit d'un message d'avertissement. Utilisez ce fichier si j'ai saisi le code dans mon terminal et que je recommande d'afficher les boîtes de message. Ici, vous pouvez voir le panneau d'avertissement et ceci est un message d'avertissement. Ensuite, nous avons un message d'erreur. Je commente ce mensonge et je vais afficher le message d'erreur. Je vais afficher une erreur dans la boîte de message Showeror point show. abord, nous devons fournir le titre puis notre message d'erreur. Après avoir défini ce fichier, si j'exécute ce code dans mon terminal et que j' appuie sur ce bouton, vous pouvez voir ici le message d'erreur avec un signe en croix, cette icône. Maintenant, laissez-moi vous montrer que vous demandez à Quotien, mais avant de commenter cette ligne et d'utiliser ask QuotienF, je vais définir une variable et notre variable m Réponse 1 égale à Messes Boox Dot Ask Quoi. abord, pour fournir le quotien du titre , puis nous devons demander le quotien : aimez-vous Python Prononcez ce dicton, cet utilisateur a deux options, oui ou non. Pour épingler la réponse, je vais taper print statement. Au cours des rondes, il y a ask ui et je vais donner la réponse, oui ou non. Et je vais configurer ce fichier. Je définis ce fichier si j'exécute ce code dans mon terminal. Et appuyez sur ce bouton. Maintenant, cette boîte de dialogue est un quotient avec un signe verbal. Aimez-vous Python, oui ou non ? Si je passe oui, comme vous pouvez le voir, vous pourriez terminer votre location en tant que Quotien Maintenant, je vais vous montrer une autre boîte de dialogue. Mais avant de commenter cette ligne et ici, je vais déclarer une autre variable, réponse deux. Répondez à deux égales à des masses bog dot sn comme titre, je vais passer sn Tu veux continuer ? Dans Askino, si vous appuyez sur Oui, cela signifie que c'est vrai, et si vous appuyez sur Non, cela signifie que c' est faux. Laisse-moi te montrer. Je vais peindre la réponse à la valeur et je vais sous-traiter ce fichier et exécuter ce code dans notre terminal. Pour exécuter ce code, si j'appuie sur ce bouton, maintenant il me demande, voulez-vous continuer si j'appuie sur Oui, comme vous pouvez le voir, comment s' est-il imprimé vrai Mais si nous appuyons sur Non, les formulaires seront imprimés. De même, de la même manière, nous avons demandé au cancer. Je définis une autre variable : réponse trois, réponse trois égale deux, masses box point ask, OK, cancer. Il est utilisé pour les modifications et renvoie également une fausse valeur. Si j'imprime la valeur dans notre terminal définis ce fichier et que j'exécute ce code dans notre terminal, si j'appuie sur ce bouton, comme vous pouvez le voir, souhaitez-vous effectuer des modifications ? Si j'appuie sur Annuler, vous pouvez maintenant voir que la réponse est fausse. Si j'appuie sur Oui, si j'appuie sur Oui, alors l'impression s' effectuera. En gros, nous l'utilisons pour les paramètres SAP. Enfin, nous avons demandé une nouvelle tentative d'annulation. Je commente à la fois la ligne et je vais taper la réponse quatre. Répondez à quatre points égaux à la masse de la case et demandez à nouveau d'annuler. Et comme titre, je vais réussir une nouvelle tentative. Échec de la nouvelle tentative de connexion. On me demande de réessayer, puis j'imprime l'identifiant. De plus, celui-ci retournera vrai et faux dans mon terminal, laissez-moi vous montrer si j'exécute ce code dans mon terminal et que j' appuie sur ce bouton, des messages d'avertissement s' La connexion a échoué, j'ai demandé une nouvelle tentative. Si j'appuie sur Réessayer, ça va passer Voici un exemple de fonction courante d'une boîte à déchets. Dans le prochain tutoriel, je vais parler d' une autre boîte de dialogue qui est la boîte de dialogue de fichiers. Merci d'avoir regardé cette vidéo Tay tune pour notre prochain tutoriel 33. Dialogs de fichier: Bonjour, les gars. C'est bon de te revoir. Encore une fois, je suis de retour avec une autre boîte de dialogue liée au didacticiel. Et aujourd'hui, dans ce didacticiel, nous allons apprendre la boîte de dialogue des fichiers. Dans notre précédent tutoriel, nous avons appris Messes Box. Nous utilisons une boîte de message pour afficher des informations, des avertissements, des erreurs, etc. Mais dans notre boîte de dialogue de fichier, nous pouvons ouvrir un fichier, nous pouvons enregistrer un fichier, nous pouvons ouvrir plusieurs fichiers .ats, tout. La boîte de dialogue de fichier Kint permet à l'utilisateur de sélectionner des fichiers ou des dossiers. Et si nous en parlons de fonctions communes, il est livré avec un total de quatre fonctions. Demandez le nom du fichier ouvert. Je sélectionne un fichier à ouvrir. Il est utilisé pour un seul fichier et il va renvoyer le chemin du fichier sous forme de chaîne. Ensuite, nous avons les noms de fichiers Ask Open. Je sélectionne plusieurs fichiers. Il est écrit deux chemins de fichier. Ensuite, nous avons Ask save en tant que nom de fichier. Nous l'utilisons pour sélectionner l'emplacement où enregistrer un fichier. Il a enfin écrit un fichier de chaîne, nous avons le répertoire ask. Il est utilisé pour un dossier sélectif et renvoie un chemin de dossier sous forme de flux. Permettez-moi donc de vous montrer la démonstration de toutes ces fonctions. Que pouvons-nous en faire ? Comme vous pouvez le voir, nous sommes dans mon éditeur de code sult studio. Dans un premier temps, nous saisissons Kinar en tant que TK. Ensuite, nous créons la racine de fenêtre y de base égale à Tika TK. Ensuite, nous avons défini un titre pour cette fenêtre, exemple de boîte de dialogue de fichier, et nous avons défini la géométrie. 300 x 200 et enfin nous exécutons la boucle principale. Dans un premier temps, je vais créer un bouton, classe de boutons Su ti tdt Ensuite, à l'intérieur des barres rondes, nous plaçons ce bouton dans une fenêtre racine, puis le texte est égal à ouvrir le fichier et la commande est égal à J'appelle cette fonction open file, puis j'emballe ce bouton Après cela, nous devons définir cette fonction open file, donc je copie le nom de la fonction. Ici, je vais définir la fonction, Dave, ouvrir le fichier, et dans cette fonction, dans un premier temps, je vais définir une variable appelée chemin de fichier, fichier, chemin soulignement, chemin de fichier identique à ici, nous devons utiliser le dialogue de fichier Pour cela, nous devons importer la boîte de dialogue du fichier. Je vais taper depuis Kinard Je veux importer un fichier dans la boîte de dialogue Maintenant, je veux utiliser ask open file name. Tout d'abord, nous devons définir la boîte de dialogue du fichier, le point de dialogue du fichier. À partir de la boîte de dialogue de fichier, je souhaite utiliser comme nom de fichier ouvert. Ensuite, à l'intérieur des rebords puis à l'intérieur des résines rondes , nous devons d'abord attribuer un titre à la fenêtre de dialogue Tapez donc title Liqual pour ouvrir un fichier. Puis, virgule après virgule, nous devons définir les types de fichiers C'est important. Tapez donc les types de fichiers. Ensuite, à l'intérieur de la base carrée, nous pouvons définir des types de fichiers particuliers. Supposons que si vous souhaitez sélectionner un fichier txt, un fichier texte vous devez définir le niveau du fichier texte, puis mentionner l'extension. Je veux parler du modèle de fichier. Pour cela, vous devez taper star point TXT. Dot TXT est l'extension, et son étoile signifie tout. Cela peut être n'importe quoi. Cela peut être un, deux, trois, TXT à points , du texte, un symbole, peu importe. De même, si vous souhaitez sélectionner d'autres types de fichiers, supposons que si vous souhaitez sélectionner un fichier Python, dans ce cas, vous devez d'abord fournir le nom du niveau (dans notre cas les fichiers Python), puis vous devez transmettre l'extension. Comme Star Dot Py. C'est pour le fichier Python. Et si vous voulez accéder à tous les fichiers, dans ce cas, vous devez taper tous les fichiers, c'est l'étiquette, et pour l'extension, vous devez taper star point star. C'est une victoire après un point, ça peut être n'importe quoi. Cela peut être TXT, cela peut être Pi, cela peut être un fichier Illustrator, PSD, peu importe En gros, nous avons créé ici un filtre point vers le bas. Cet utilisateur peut sélectionner le type de fichier entre TextFile et Python Après avoir ouvert le dossier, si vous utilisez ou sélectionnez un fichier Python, il n' affichera que le fichier Python du dossier, et s' il sélectionne tous les fichiers, il affichera tous les fichiers du dossier. Je vais vous montrer la démonstration. Maintenant, comme vous pouvez le voir dans mon essai de documents, nous avons plusieurs types de fichiers, tels qu'un fichier PDF, un fichier image JPG, un fichier image PNG, un fichier Adobe Illustrator, un fichier texte, un fichier Python, un fichier CSS, un fichier script et TMLFle Vous avez également un fichier Photoshop. Revenons maintenant au code. Donc, prédéfinissez ce fichier si j'exécute ce code dans mon terminal, laissez-moi vous le montrer et maintenant vous pouvez voir notre boîte de dialogue de fichier, et nous avons un bouton pour ouvrir le fichier. Maintenant, j'essaie d'ouvrir n'importe quel fichier, super cliquez dessus pour ouvrir une fenêtre de fichier. Il s'agit de notre boîte de dialogue de fichier, et nous l'appelons OpenAFLE Je veux accéder au dossier Document Si j'ouvre le dossier Document, maintenant vous ne pouvez voir que le fichier texte car dans notre section de filtrage, nous sélectionnons le fichier texte. Maintenant, je veux sélectionner le fichier Python. Après avoir sélectionné le fichier Python, vous ne pouvez voir que le fichier Python de ce dossier dans ce dossier. Si je sélectionne tous les fichiers, vous pouvez maintenant voir tous les types de fichiers ensemble. Vous pouvez maintenant sélectionner n'importe quel fichier de ce dossier. Ici, nous avons utilisé les deux types de filtre, le filtre Text TextFile et le filtre de fichier Python Vous pouvez maintenant sélectionner tous les fichiers Python. Vous pouvez maintenant ouvrir ce fichier. Vous pouvez sélectionner ce fichier. Vous pouvez également ouvrir ce fichier. Après avoir ouvert ce fichier, vous ne pouvez rien voir ici car nous ne faisons rien après l'avoir ouvert. Après avoir ouvert le fichier, imprimons le chemin du fichier. Pour cela, je vais taper IP condition. Si chemin de fichier, alors si chemin de fichier, insérez cette condition IP. Je veux imprimer, imprimer, je veux imprimer le chemin du fichier. Ensuite, dans le rundress, à l'intérieur des codes doubles, tapez Hem, ouvrez le fichier, puis la virgule supérieure, puis Apocma, je veux imprimer le chemin du Variable de chemin de fichier. Je vais configurer ce fichier. N'oubliez pas que cette fonction est utilisée pour sélectionner un seul fichier. Après avoir défini le fichier, si j'exécute ce code dans mon terminal et que j' essaie de sélectionner un fichier, par exemple si je veux sélectionner un fichier Python point Pi, je clique sur Ouvrir. Maintenant que vous pouvez voir mon terminal, j'imprime le chemin exact du fichier à partir duquel nous ouvrons le fichier. Il imprime le chemin exact de ce fichier sous forme de flux. Maintenant, en utilisant le chemin du fichier, nous pouvons ouvrir le fichier et pour l'ouvrir, nous devons créer un pointeur de fichier et une méthode d'ouverture, etc. Je ne vais pas l'utiliser dans ce tutoriel. J'ai juste essayé de vous montrer comment nous pouvons utiliser le dialogue de fichiers. Ensuite, je vais vous montrer comment ouvrir plusieurs fichiers à la fois, comment sélectionner plusieurs fichiers. Pour cela, je vais définir un autre bouton, un bouton billetté, et le texte de notre bouton est Ouvrir plusieurs fichiers ». Je commande cette fonction, ouvre plusieurs fichiers, et j'emballe ce Ensuite, nous devons définir cette fonction. Je copie cette fonction et je vais dupliquer cette section séparément Ensuite, après l'avoir dupliqué, je vais remplacer le nom de la fonction, ouvrir le fichier, ouvrir plusieurs fichiers. Au lieu d'utiliser des points de dialogue de fichier, ouvrez le nom du fichier, je vais utiliser de beaux noms MEs Celui-ci. Je vais également changer le titre de cette fenêtre ouvrir un fichier deux, ouvrir plusieurs fichiers. Je vais maintenant supprimer cette fonctionnalité. Je n'en ai pas besoin. Et au lieu d'utiliser un seul filtre, je vais utiliser plusieurs filtres à la fois. Laisse-moi te montrer. Helm définit donc les images. Notre niveau de filtre est celui des images, et en même temps, je souhaite accéder à une image PNG, à une image JPG, à une image JPEG. Avec cela, si vous souhaitez ajouter un Adobe iSorfle ou PSD, oui, vous le Il suffit de taper de l'espace et de taper start.ai dans le fichier Illustrator. Espace, également si vous voulez ouvrir un fichier PSD, puis taper Star Dot PSD, Photoshop Document Five, et je vais définir ce code Ensuite, je vais également modifier la déclaration d'impression. Je vais sélectionner les fichiers, puis le chemin du fichier. Mais avant d'exécuter ce code, je vais également modifier la variable car je duplique ce fichier, donc je ne veux pas utiliser le même nom de variable. Je ne veux pas le remplacer. Pour cela, je souhaite utiliser un nom de variable distinct. Je vais donc taper. Je vais en faire des fichiers de chemin de fichier, celui-ci. Je vais configurer ce fichier. De plus, si les fichiers impriment les fichiers sélectionnés, ils imprimeront un tapu Il va imprimer une bande avec plusieurs chemins de fichiers sélectionnés. Laisse-moi te montrer. Définissez donc ce fichier si j'exécute ce code dans mon terminal et que j'essaie d' ouvrir plusieurs fichiers. Vous pouvez maintenant voir le résultat. Ici, comme vous pouvez le voir, ce sont des images sélectionnées et cela ouvre tous les types de formats de fichiers image. Je n'ai aucun format de fichier JPEG. C'est pourquoi cela ne s'affiche pas. Nous avons le fichier JPG, le fichier Adobe Illustrator, le fichier Photoshop et le fichier PNG, et je vais tout ouvrir en même temps. Si je l'ouvre, comme vous pouvez le voir sur mon terminal, il imprime un Taple, chaque élément Taple est un chemin de fichier Voici notre dossier. Il s'agit de la première partie de ce didacticiel. Dans la même partie de ce didacticiel, je vais utiliser deux autres fonctions telles que ask save file name et ask directory. Il est utilisé pour enregistrer le fichier et ensuite sélectionner le dossier. Merci d'avoir regardé cette vidéo, restez connectés pour notre prochain studio. 34. Dialogs de fichiers Partie 2: C'est bon de vous revoir, les gars. Dans ce tutoriel, nous allons apprendre. Demandez la méthode de sauvegarde du nom de fichier et demandez la méthode Ditory. Il est utilisé pour sélectionner l'emplacement du fichier Babe, et le suivant est utilisé pour sélectionner un dossier Commençons donc par le côté pratique. Comme vous pouvez le voir, nous sommes dans mon éditeur de code studio. Je vais maintenant créer un autre bouton. Cela va commander une fonction. Enregistrez le fichier, laissez-moi vous montrer. Donc, tapez le bouton à points, et le texte de votre bouton est un fichier de sauvegarde. Et dans notre paramètre de commande, j'appelle cette fonction, enregistre le fichier, et j'emballe ce bouton. Ensuite, nous devons définir cette fonction. Disons fichier. Je copie donc le nom de la fonction et je vais dupliquer cette section. Dans un premier temps, je vais changer le nom de la fonction. Je vais remplacer plusieurs fichiers par un fichier et le remplacer par un fichier de sauvegarde. Ensuite, je vais changer le nom de la variable. Je vais faire en sorte qu'il sauve Path. SPAT égal au point de dialogue du fichier, demandez la méthode de sauvegarde du fichier Activé pour remplacer, demandez le nom des fichiers ouverts ou demandez le nom du fichier de sauvegarde. Ensuite, je vais définir un titre. Je vais faire en sorte que le titre soit égal à enregistrer sous. Ensuite, vous pouvez mentionner l'extension par défaut du fichier sécurisé. Pour cela, nous utilisons ce paramètre, extension par défaut égale au point TXT. Donc automatiquement, il va définir le fichier au format TXT. Vous pouvez également le mentionner dans les types de fichiers. Donc, pour supprimer ces extensions de fichiers et avec tous les types de fichiers, je vais utiliser le fichier TXT. J'utilise cette étiquette TextFile, puis j'utilise le point de départ TXT Après cela, nous devons imprimer le chemin choisi après avoir sélectionné le chemin. Pour cela, nous devons utiliser I condition I Seppth I set path is true, puis je veux imprimer la variable set path Je vais également modifier le texte de cette déclaration imprimée. Ici, je vais taper file save at Save PAT et je vais définir ce fichier. Après avoir sous-traité ce fichier, si j'exécute ce code dans mon terminal, vous pouvez maintenant voir ce bouton de fichier. Si je clique dessus à partir d'ici, vous pouvez utiliser l'emplacement du fichier dans notre dossier. Vous pouvez également utiliser des types FLESvs tels que Bidifulc TextFils. Vous pouvez également choisir tous les fichiers et sélectionner votre emplacement de sauvegarde. Après avoir sauvegardé, il remplacera celui-ci. Il va remplacer le nouveau. De plus, si vous souhaitez mettre votre propre nom, tel qu' un nouveau fichier, nouveau fichier et choisir l'extension de texte, fichier texte, puis Paysafe Maintenant, vous pouvez voir un terminal, j'imprime l'emplacement sécurisé du fichier. Enregistrez le fichier exactement à cet emplacement sous ce nouveau nom de fichier. N'oubliez pas qu'il ne crée pas un vrai fichier. Il s'agit simplement de créer un emplacement de fichier sécurisé. Parlons maintenant de notre dernière fonction. Pour cela, je vais définir un autre bouton ici, tapez pkt button. Je vais le placer dans une fenêtre racine et le texte de notre bouton est Select folder, et il va commander cette méthode, sélectionnez DSCOfolder La fonction de sélection du dossier va définir un descripteur placé sur le caractère PKD Vous pouvez sélectionner n'importe quel dossier à l'aide de cette option. Définissons la fonction. Pour cela, ici, je vais taper le nom de notre fonction Dave select folder. Et dans la fonction, je vais taper le chemin du dossier, sinon le dossier. Le dossier est égal à la boîte de dialogue du fichier, le point de dialogue du fichier, et ici nous allons utiliser le répertoire ask. Demandez à l'annuaire. Ensuite, dans les roulettes, dans un premier temps, pour fournir le titre, et notre nom de titre est title, Amotype sélectionne un dossier. C'est ça. Vous devez transmettre d'autres paramètres tels que l'extension de fichier par défaut, types de fichiers, etc., nous devons choisir le dossier Si vous voulez définir une condition, qu'elle soit correcte ou non, nous allons définir une instruction d'impression en utilisant la condition IP. Donc C I dossier, si dossier, alors dans cette condition, puis dans cette condition E, je vais imprimer. Il doit imprimer dans le dossier rond sélectionné, je veux sélectionner le dossier du chemin du dossier et je vais définir ce fichier. Après avoir défini ce fichier, si j' exécute ce code dans mon terminal et que j'essaie de sélectionner un chemin de dossier, laissez-moi vous montrer que vous pouvez voir le bouton, sélectionner un dossier, si je clique dessus et que je sélectionne l'un des dossiers tels que télécharger. Téléchargements, sinon, vous pouvez sélectionner un dossier depuis n'importe quel lecteur, si j'ouvre ce lecteur, par exemple si nous sélectionnons le KinterFolder Ensuite, si je clique dessus, vous pouvez voir ici le chemin du dossier sélectionné. Ce dossier se trouve sur mon lecteur Web et le nom de notre dossier est Kinter. Il s'agit donc de la fonction de dialogue de fichiers la plus courante, et vous pouvez voir leur objectif et ce qu'ils ont écrit. Merci donc d' avoir regardé cette vidéo. Restez à l'affût pour notre prochain tutoriel. 35. Sélecteur de couleurs (colorchooser) ): Salut, les gars, c'est bon de vous revoir. Il s'agit de la dernière boîte de dialogue liée au didacticiel, et dans ce didacticiel, nous allons apprendre le sélecteur de couleur Le module de sélection de couleurs permet à l'utilisateur de choisir une couleur dans une palette Il est écrit à la fois des valeurs de couleur RGB et des valeurs de couleur hexa. Commençons donc par la pratique et voyons comment nous pouvons l'utiliser. Comme vous pouvez le voir, nous sommes dans l'éditeur de code de mon studio Visal, et nous créons une fenêtre de base simple Ensuite, nous définissons la géométrie. 300 par deux, ici nous allons utiliser un sélecteur de couleur Nous devons donc importer un sélecteur de couleur. Pour cela, nous devons associer le sélecteur de couleurs d'importation Kiner. Ensuite, nous devons créer un bouton qui va appeler une fonction. Pour cela, je vais lier le bouton tdt et appuyer sur le bouton dans une fenêtre racine et notre bouton prend la couleur du tuyau Dans notre paramètre de commande, j'appelle cette fonction «   choisir la couleur ». Nous devons maintenant définir cette fonction. Donc, ici, je vais définir la fonction. Dave a choisi la couleur. Ensuite, dans cette fonction, nous devons ouvrir le dialogue du sélecteur de couleur Pour cela, je vais définir une variable et le nom de notre variable est color. Couleur égale à celle du sélecteur de couleur, du sélecteur de couleur, I un, deux, je veux utiliser la méthode appelée ask color. Celui-ci. Ensuite, à l'intérieur de la robe ronde, je vais définir un titre, et je vais taper Pk color Choisissez une couleur. Après cela, je vais utiliser la condition IP. Comme je vous l'ai dit, après avoir choisi une couleur, elle renverra une valeur hexa ainsi qu'une valeur RGV Ici, je vais dire qu'une condition que je colore à partir de la couleur que je souhaite sélectionner parmi la couleur, je veux sélectionner Index 1. Ici, j'utilise Index 1, et Index 1 représente la valeur hexa qui signifie que s'il y a une valeur Xa dans cette variable à l' index numéro un, alors dans cette condition IP, je veux imprimer un imprimé à l'intérieur des robes rondes, je vais taper. Tout d'abord, je veux imprimer les valeurs RGV sur Type RGB, deux points et je vais imprimer la valeur de couleur RGV Pour cela, pour accéder à la valeur de couleur RGV , saisissez le nom de la variable, nous devons accéder au numéro d' index zéro Il va imprimer la valeur de couleur argv. Ensuite, je vais imprimer le xa. Je duplique cette ligne. Au lieu d'utiliser la couleur zéro, je vais utiliser l' index numéro un, et je vais remplacer RGV un x. Je vais définir ce fichier Maintenant, après avoir défini ce fichier, si j'exécute ce code dans mon terminal, laissez-moi vous montrer que nous avons un bouton appelé Sélecteur de couleur Si je clique dessus, la boîte de dialogue du sélecteur de couleur s'ouvre. Si je sélectionne une couleur telle que le vert et que j'appuie sur OK, vous pouvez maintenant voir la couleur fonctionner. Voici le saule AGV de cette couleur et voici le Hixavo de cette Maintenant, laissez-moi vous montrer un autre exemple. Je souhaite changer la couleur de notre fenêtre. Quelle que soit la couleur sélectionnée dans ce sélecteur de couleurs, je souhaite l'appliquer dans notre fenêtre principale Pour cela, je vais taper root point config Method, Config. Au lieu des robes rondes, je veux changer la couleur de fond tie BG fond égal à Dgroun est égal à deux, j'ai coloré et je veux appliquer la valeur hexa Alors attachez la couleur à un index numéro un. Je vais configurer à nouveau ce fichier. Maintenant, si je réexécute ce code et que j'ouvre la boîte de dialogue des couleurs, que je sélectionne des couleurs telles que ce type de bleu, que je sélectionne et que j'appuie sur OK, vous pouvez maintenant voir dans notre fenêtre principale qu'il se reflète avec cette couleur, cette couleur bleue. Quelle que soit la couleur sélectionnée dans ce sélecteur de couleur, elle sera appliquée dans cette fenêtre C'est ainsi que nous pouvons utiliser la boîte de dialogue du sélecteur de couleur. Merci d'avoir regardé cette vidéo, restez connectés pour notre prochain tutoriel. 36. Barres d'outils Tkinter python: Bonjour, les gars. C'est bon de te revoir. Encore une fois, je suis de retour avec un nouveau tutoriel, et aujourd'hui dans ce tutoriel, nous allons en apprendre davantage sur toolbdsolwars En gros, un mot outil n' est qu'un cadre placé en haut de la fenêtre qui contient un assistant de boutons avec des icônes. Le mot outil n'est pas un objet, ce n'est pas un objet différent. Il est fabriqué avec un cadre. Créons la barre d'outils et détruisons le concept. Comme vous pouvez le voir, nous sommes dans l'éditeur de code de mon studio Wizard et je crée un fichier Python et je crée un Pi à cinq outils Python. Nous avons un dossier, dossier d' icônes, et dans ce dossier d'icônes, nous avons plusieurs icônes, telles qu'une nouvelle icône, cette image, icône ouverte et une icône Sab Et je vais utiliser ces images. Ces images sont des images à très faible résolution, par exemple 16 x 16 pixels, sinon des quatre y aux quatre pixels. Selon vos besoins, vous pouvez attribuer n'importe quelle résolution à ces images. Commençons donc par la pratique. Dans un premier temps, je vais créer une barre d'outils pour cela, je vais définir une barre d'outils variable. Barre d'outils égale à TkDTFrame. Ici, nous créons un objet cadre. Ensuite, à l'intérieur de l'évidement rond nous plaçons le cadre dans une fenêtre racine, puis nous utilisons une bordure en relief Tkot surélevée. C'est l'heure des frontières. Maintenant, après avoir créé le cadre de la barre d'outils, nous devons également emballer cette barre d'outils. Je vais l'emballer ici. Un outil de type Word Dot Pack, et je vais le placer en haut. Je souhaite remplir cette barre d'outils sur Xxs. Nous connaissons déjà le processus, comment placer un objet n'importe où et comment l'étirer. Maintenant, après avoir défini la barre d'outils, nous devons charger les images d'icônes. Tout d'abord, je dois charger une nouvelle icône, cette nouvelle image, définir une variable, une nouvelle icône, égale à AirTypeHirn pour taper la méthode d'image photo tdt Maintenant, c'est une nouvelle méthode pour toi. En utilisant la méthode photo Image, nous pouvons saisir une image dans notre fenêtre et, comme vous pouvez le voir, en tant que paramètre, fournir le chemin du fichier. Donc, depuis le dossier des icônes, je souhaite accéder au nouveau point PNG. Ensuite, je le stocke dans une nouvelle icône variable. la même manière, je vais saisir une autre image ouverte et enregistrer. Ici, je saisis une autre image, ouvre l'icône et je sauvegarde l'icône, en utilisant la méthode de l'image photo. Ne t'inquiète pas pour ça. Dans notre prochain chapitre, nous parlerons des images photographiques. Une chose que vous devez retenir, l'icône de chargement doit être une image PNG ou une image GIF. Ensuite, nous devons créer les boutons, et je vais remplacer l'icône du bouton par cette image PNG. Donc, dans un premier temps, je vais créer le nouveau bouton. Tapez donc un nouveau bouton égal aux boutons Tkot. Ensuite, à l'intérieur de la brèche ronde, je vais placer le bouton dans le cadre de la barre d'outils. Puis image égale à la nouvelle icône. Maintenant, j'attribue une nouvelle image d'icône à ce bouton et une commande égale à un nouveau fichier. Il va commander cette fonction, nouveau fichier. Ne t'inquiète pas Nous créerons notre nouvelle fonction de fichier ultérieurement. Après cela, nous emballons ce bouton à nouveau. Comme vous pouvez le voir, comment définissons-nous un bouton variable nouveau et un bouton égal à un bouton à cocher. Et je teste ce bouton dans le cadre de mots de cet outil. Ensuite, nous attribuons une image. L'image est égale à la nouvelle icône, la nouvelle image de l'icône correspond à ce bouton. Ensuite, nous commandons cette fonction, Nouveau fichier, Don VOD, nous créerons la fonction plus tard et nous insérons également ce bouton, point, pack, et dans le processus d'exécution, et j'appuie sur ce bouton sur le côté gauche De plus, j'attribue un peu de rembourrage à ce bouton aux niveaux Xs et YxS. De la même manière, je vais créer deux autres boutons. Je fais simplement avancer le processus pour vous faire gagner du temps. la même manière, je crée Ouvrir le fichier et le bouton Enregistrer le fichier. Maintenant, une par une, je vais définir toutes les fonctions, nouveau fichier, fichier ouvert et fichier sécurisé. En gros, je vais afficher une masse d'informations lorsque nous cliquons sur ces boutons. Rien d'autre Pour cela, nous devons importer des boîtes de masse. Tapez donc à partir de la zone Kiner Import Masses. Ensuite, je vais définir les fonctions. Notre première fonction est Dave New file. Ensuite, dans cette nouvelle fonction de fichier, je vais imprimer ce message. Je souhaite imprimer ce message d'information. Je tape donc le point de la boîte de message pour Info Method. Ensuite, comme étiquette comme titre de cette action Window HearitypetOLB, et comme message d'information que nous transmettons, et comme message d'information que nous transmettons De la même manière, je vais créer deux autres fonctions. Ici, je vais définir deux autres fonctions, ouvrir le fichier et enregistrer le fichier. Pour un fichier ouvert, je passe ce message, un fichier ouvert, et pour Saffle, je passe ici ensemble de fichiers. C'est ce fichier. Étape supérieure de ce fichier si vous exécutez ce code dans mon terminal et comme vous pouvez le voir, il a créé, il a créé Ta avec des icônes. Nous remplaçons les boutons par ces icônes. Si j'appuie sur l'un des boutons tels qu'ouvrir un fichier, vous pouvez maintenant le voir afficher un message, ouvrir un fichier. De même, si nous cliquons sur Saffle, affichez ce message, le fichier En gros, dans ce tutoriel, j'essaie de montrer ce qu'est la barre d'outils. Dans la plupart des cas, nous utilisons une barre d'outils avec des menus, mais je vous apprends déjà comment créer des menus et comment créer des sous-menus C'est donc tout pour ce tutoriel. Merci d'avoir regardé cette vidéo. Restez à l'affût pour notre prochain tutoriel. 37. Ajouter des images dans Tkinter: Bonjour, les gars. C'est bon de te revoir. Encore une fois, je suis de retour avec un nouveau tutoriel, et aujourd'hui dans ce tutoriel, j'aimerais vous montrer comment on peut ajouter une image dans Kiner Windo en utilisant photo Image Pour ajouter l'image, nous allons utiliser la méthode de l'image photo et elle ne prend en charge que les images GIF et PNG. La classe d'image photo de Tinter vous permet d' afficher des images, mais elle ne prend en charge que les formats PNG et GIF Je ne supporte pas les images au format JPG. Voyons un exemple d' utilisation de cette image photo de classe. J'ai déjà utilisé celui-ci dans mon précédent tutoriel, mais il s'agit du didacticiel distinct pour cette image photo de classe. Commençons par l'aspect pratique. Comme vous pouvez le voir, nous sommes dans éditeur de code de mon studio de résultats. Dans un premier temps, je vais importer un module et notre module est Kinder Je vais taper Import Kiner TK enter en tant que TK. Ensuite, pour créer la fenêtre racine. Pour cela, je vais taper root égal à p point T class. Je vais également attribuer un titre à cette fenêtre racine. Exemple d'image de photo contenant le titre racine. Vous pouvez ensuite attribuer une géométrie à cette fenêtre. Tu peux l'ignorer si tu veux. Ensuite, je vais taper root point main loop. Je vais exécuter la boucle principale. Ici, nous allons utiliser la classe d'image photo pour accéder à l'image. Pour cela, nous devons taper l'image photo à point T. Image photo. Ensuite, à l'intérieur des rondes, vous devez fournir le chemin du fichier, sinon le fichier fichier est égal à l'intérieur des codes doubles et le nom de notre fichier image est au fichier, celui-ci, cette image PNG. Je souhaite ajouter un fichier à points PNG. C'est ça. Ensuite, je vais stocker cette image dans une variable. Pour cela, je vais définir ici une variable ING, image égale à TKTPhotoImage Maintenant, je veux afficher cette image dans une étiquette. Pour cela, je vais définir un label, label égal à T label. Voilà la rondeur, je vais mettre l'étiquette dans une fenêtre racine Ensuite, je vais définir l'image. Ici, je vais utiliser l'option image. Image égale à, je vais passer la variable d'image IMG, image. Je vais configurer le fichier. Après cela, je vais emballer cette étiquette. Je vais donc taper la méthode label point PAC. Ensuite, à l'intérieur du Rundss, je veux ajouter un peu de rembourrage à YX, un peu de type, de pad, de Y, en pixels . Je vais régler cette partie. Maintenant, si je définis ce fichier et que j'exécute ce code dans notre terminal, vous pouvez voir ici l'image PNG. Comme je vous l'ai dit, il prend en charge la méthode de l'image photo et ne prend en charge que les images PNG et GIF. Je ne supporte pas d'autres formats comme GPG, JPEG, etc. Maintenant, si vous essayez d' afficher une image JPG, je duplique cette ligne et je commente la ligne précédente, et je vais remplacer ce chemin de fichier par css point JPG, css point JPG, définir ce fichier et exécuter ce code dans notre terminal. Maintenant, vous pouvez voir que c'est le tunnel Aero. Il y a aussi une chose dont tu dois te souvenir. Vous devez toujours conserver une référence à l'image. Dans le cas contraire, il risque de ne pas s'afficher. Je veux dire unique pour l' assigner dans une variable. Dans notre cas, IMG. Sinon, ça ne marchera pas. Il s'agit du premier exemple. Ici, j'affiche des images au format PNG ou JPG. Si vous souhaitez utiliser d'autres formats d'images tels que JPG, JPEG, BMP, PNG, WEBP, dans ce cas, vous devez utiliser un module appelé PL Je vais vous montrer la démonstration. Maintenant, laissez-moi vous montrer une autre méthode permettant d'afficher des images d'autres formats à l'aide de la bibliothèque PAL. PAL commence par Plus. Il est utilisé pour les images GPG, PNG, tous types d'images L'image photo Ginters ne prend en charge que les formats PNG ou GIP. Mais avec Pillow, vous pouvez charger presque tous les formats, tels que JPGImage, image JPEG, image BMP, image PNG, image TI AFB et Je vais donc vous montrer comment nous pouvons l'utiliser. Comme vous pouvez le voir dans mon éditeur de code Visualts Studio, je crée ici un autre fichier Python, Minto dot pie Dans un premier temps, je vais importer le Kintermdule. Je vais taper Import inter en tant que DK. Ensuite, je vais ouvrir mon Windows PowerShell. Comme vous pouvez le voir ici, j'ouvre mon Windows PowerShell et je vais installer un module Notre objectif est le type Pillow, Peep, install, et le nom de notre module est PLO. Je vais appuyer Après avoir appuyé sur Entrée, comme vous pouvez le voir, l'exigence est déjà satisfaite car j'ai déjà téléchargé ce module. Mais si vous ne téléchargez pas ce module, vous devez terminer le processus de téléchargement. Revenons maintenant au code. Après cela, à partir du module PIL, nous devons importer l'image et l'image TK Type de somme depuis PIL, je souhaite importer une image et une image TK Ces deux classes, image TK, c'est tout. Ensuite, je vais créer un objet de fenêtre racine en utilisant cette classe T. Ensuite, je vais définir un titre. Ici, je tape un exemple d'image d' oreiller sous forme de titre racine. Ensuite, je vais lancer la boucle principale. Donc, tapez, root, main loop. Maintenant, je veux ouvrir l'image JPG, point CSS GPG. Pour cela, je vais définir une variable et le nom de notre variable est image. Image égale à ici, je vais utiliser la classe d'image, l' image, le point, la méthode ouverte. Ouverte. Ensuite, à l'intérieur des rondres ici à l'intérieur du double parcours, pour passer, nous devons passer le nom de l'image, Css point JPG Après cela, nous devons convertir l'image en image compatible Kiner Pour cela, je vais définir une autre variable IMG, image, image égale à deux Je vais utiliser cette classe image TK, méthode image tk point photo image. Ensuite, à l'intérieur des robes rondes, je vais passer la variable image Image. Ensuite, nous devons afficher cette image dans une étiquette. Pour cela, je vais définir une étiquette et une étiquette égales à une étiquette à point T, et je teste l'étiquette dans la fenêtre racine et ici image, image égale à image IMG Image variable. Ensuite, je vais emballer cette étiquette. Je tape label point PAC Mathod. Ensuite, à l'intérieur de la chemise, je vais taper le pad Y 20 pixels. Je vais configurer ce fichier. Pour configurer ce fichier, si j' exécute du code dans mon terminal, vous pouvez voir le résultat ici. Vous pouvez voir l'image. Notre résolution d'image GBG est trop grande, c'est pourquoi elle couvrait la zone. Pour résoudre le problème de taille, nous pouvons utiliser une autre méthode. Laisse-moi te montrer. Je vais quater le terminal et ici je vais fournir une image de dimension spécifique à cette variable d'image Donc, pour taper une image. Image égale à ici, je vais utiliser la méthode de redimensionnement des points d'image, certains types d'image, de point, de redimensionnement, de redimensionnement Ensuite, à l'intérieur des rondes, puis à l'intérieur des rondes, nous devons fournir la dimension de l'image. Vous devez fournir la dimension à l'intérieur des ronds de type 400 par 400. C'est une image carrée. Je vais configurer ce fichier. Après avoir défini ce fichier, si j'exécute ce code dans mon terminal, vous pouvez maintenant voir le résultat. Il redimensionne l'image JPG. En gros, le module Pio étend capacités de Cintros en supportant plus de formats. Vous pouvez redimensionner, recadrer, faire pivoter et appliquer un filtre à cette image Et n'oubliez pas de toujours utiliser la méthode des images photo à points magiques pour convertir une image PIL dans un format intercompatible C'est tout pour ce tutoriel. Dans le prochain tutoriel, je vais vous montrer comment recadrer l'image, comment faire pivoter une image, ainsi que comment appliquer différents filtres, tels que Guscian, échelle de gris, flou, etc. Restez à l'affût pour notre prochain tutoriel. 38. Redimensionner, recadrer, faire pivoter et filtrer des images (coussin + Tkinter): Bonjour, les gars. C'est bon de te revoir. Encore une fois, je suis de retour avec un autre tutoriel. Et pour réaliser ce tutoriel, nous allons apprendre à redimensionner, recadrer, faire pivoter et filtrer des images à l'aide de Pillow and Kid Dans notre précédent tutoriel, je vous montre déjà comment redimensionner des images Pour cela, nous utilisons cette méthode image point Resize. Ensuite, vous devez fournir la largeur et la hauteur. Et si vous souhaitez recadrer une image, dans ce cas, saisissez la méthode de recadrage par points de l'image. Ensuite, vous devez fournir les côtés, lèvre, le haut, le côté droit et le bas. De même, si vous souhaitez faire pivoter l'image, vous devez utiliser la méthode de rotation et fournir une valeur en angle. Et si vous souhaitez appliquer des filtres tels que le filtre GrisKL, vous devez taper imagps point risk Et pour le filtre sanguin, vous devez saisir le filtre à points d'image. Ici, vous devez appliquer le filtre d'image point BLAD. Alors ne t'inquiète pas pour ça. Je vais vous montrer tous les exemples pratiques. Comme vous pouvez le voir, nous sommes dans éditeur de code de mon studio utilisateur et je crée un fichier Python main point pi. Et dans notre précédent tutoriel, nous avons déjà appris comment ouvrir une image à l'aide de la molécule Pillow. Maintenant, nous apprenons également comment redimensionner notre image. Ici, nous utilisons une image différente (point clair) JPG. Si j'exécute ce code dans mon terminal, comme vous pouvez le voir, c'est l'image d'une lumière. Et cette dimension d'image est de 512 x 512. Je vais maintenant redimensionner cette image. Pour cela, je vais définir une variable et notre variable est redimensionnée, redimensionnée, redimensionnée égale à Ici, je vais utiliser la méthode de redimensionnement par points d' image. À l'intérieur des presses rondes, vous devez mentionner les dimensions Largeur et hauteur. Certains ont dit largeur, 300 et hauteur 200. Virgule 200. De plus, je fournis une seule commande en avec 300 et une hauteur de 200. Je vais maintenant remplacer cette variable d'image par cette variable redimensionnée Je copie le nom de la variable et remplace la variable image par redimensionnée Après avoir saisi l'image, nous la redimensionnons. Ensuite, nous passons l' image dans cette classe, image ticker point photo image, et je vais satisfaire Après avoir satisfait, si j'utilise ce code dans mon terminal, vous pouvez voir le résultat. Il redimensionne l'image avec 300 et une hauteur de 200. Maintenant, laissez-moi vous montrer un autre exemple de recadrage, comment recadrer une image. Je crée un autre fichier Python crop point pi et j'ouvre cette image à l' aide du module pillow. Maintenant, je veux recadrer cette image, l'image lumineuse, l'image lumineuse exacte. Pour cela, je vais définir un crop variable. Recadrage égal à, nous devons utiliser la fonction de recadrage, un type de recadrage par points d'image. Ensuite, à l'intérieur des arrondres, nous devons fournir les valeurs, valeur gauche, valeur supérieure, valeur droite et valeur inférieure Donc pour la valeur de gauche, je vais passer 50 pour la valeur supérieure, je vais passer 50 à nouveau. Et pour la bonne valeur, je vais passer 250. Et pour la valeur la plus faible, encore une fois, je vais passer 250. Ensuite, je vais remplacer cette image par une image recadrée. Donc, copiez la variable recadrée déchirez-la avec ça. Et je vais configurer ce fichier. Maintenant, après avoir défini ce fichier, si je pouvais exécuter ce code dans mon terminal, vous pouvez voir ici la version recadrée de cette image. Sur le côté gauche, iCrof 50 pixels depuis le haut, iCrof 50 pixels et depuis le côté droit, ici je recadre 250 pixels et depuis le bas, je recadre depuis la partie inférieure Et après avoir recadré cette superficie, nous obtenons cette image. De plus, pour comprendre les valeurs de recadrage, je vais passer un seul commentaire Nous devons d'abord transmettre le lit, puis nous devons transmettre la valeur supérieure, puis la valeur droite puis la valeur inférieure. Maintenant, laissez-moi vous montrer un autre exemple façon dont nous pouvons faire pivoter une image. Comme vous pouvez le voir, nous créons un autre fichier Python rotate point pi et j'importe l'image. Maintenant, pour faire pivoter l'image, vous devez d'abord définir une variable et notre variable est la rotation. Rotation égale ici nous devons utiliser la méthode de rotation des points d'image. Ensuite, à l'intérieur des rondes, vous devez mentionner le degré de rotation. Je veux le faire pivoter jusqu'à 60 degrés, donc je passe les 60 degrés. Ensuite, dans notre image photo, je vais la remplacer par cette image pivotée Et je vais configurer ce fichier. Après avoir défini ce fichier, si j'exécute ce code dans mon terminal, vous pouvez voir le résultat. Comme vous pouvez le voir, il fait pivoter l'image à 60 degrés et il fait pivoter l'image dans le sens antihoraire. Voici donc comment nous pouvons faire pivoter une image avec l'aide de la méthode de rotation Helpop Permettez-moi maintenant de vous montrer un autre exemple. Ici, je vais vous montrer comment appliquer des filtres sur l'image. Pour cela, pour appliquer le filtre, nous créons ici un autre fichier Python : les filtres point pi. Maintenant, avant d'appliquer les filtres avec la classe image TK, nous devons entrer dans d'autres classes telles que le filtre d'image. Après le filtre d'image commémotype et l'image Ops, pour flouter l'image, nous utilisons la méthode du filtre d'image, et pour la convertir en image grascal, nous utilisons la méthode Image nous utilisons Convertissons maintenant cette image en image en niveaux de gris. Je vais d'abord le convertir en image en niveaux de gris. Ici, je vais définir un gris variable, le gris étant égal à, je vais taper image Ops, image Ops point grayscale Ensuite, à l'intérieur de la cavité ronde, je vais passer l' image variable image Ensuite, je vais remplacer l'image par une image grise. R. Maintenant, après avoir défini ce fichier, si j'exécute ce code dans notre terminal, vous pouvez voir le résultat ici. Il convertit cette image en grisscalimage. Voyons maintenant comment ajouter une barre, comment appliquer un filtre de flou. Laisse-moi te montrer. Ici, je vais taper une autre commande unique, Appliquer un filtre de flou, puis je vais définir un flou variable Flou égal à ici, je vais taper image, point, filtre, filtre à points d' image à l'intérieur des robes rondes, et ici, je vais appeler cette méthode, filtre d'image, filtre d' image, point, flou. C'est ça. Je vais configurer ce fichier. Ensuite, je vais remplacer l'image grise par l'image floue Copiez donc le nom de la variable et je vais remplacer le gris par du flou et je vais définir ce fichier Et cette fois, si j'exécute ce code dans mon terminal, vous pouvez voir ici l'image floue Voici comment appliquer un filtre. Vous pouvez appliquer plusieurs filtres. Nous avons plusieurs types de filtres , tels que le flou, le contour, les détails, les bords améliorés, les bords améliorés davantage, les ambos, les bords fins, la netteté, le lissage, le tableau lisse et Je ne vais pas vous montrer tous les filtres dans ce tutoriel. Sans flou, je vais appliquer un autre filtre, qui est condure Je vais donc dupliquer cette section et nommer Appliquer filtre de contour. Ici je vais remplacer le nom de la variable sanguine par contitor. Je vais utiliser le shot de CUNTR et je vais remplacer le filtre sanguin par un Ensuite, je vais montrer le filtre de contour. Je vais configurer ce fichier. Nous devons également commenter cette ligne, sinon elle va la remplacer Je commente cette ligne. Maintenant, la question est de savoir ce que va faire le filtre de contour ? En gros, ce filtre va détecter les arêtes et délimiter les arêtes. Donc, après avoir défini ce fichier, si j'exécute ce code dans mon terminal, vous pouvez voir les bords de cette ampoule. Je détecte les bords et je dessine les contours. C'est ce que font les filtres de contour. Nous avons maintenant plusieurs filtres. Je ne vais pas tout appliquer. C'est à vous de l'expérimenter. Sous le code, je vais fournir le nom de tous les filtres dans un commentaire. Je fournis ici tous les noms de filtres courants que vous pouvez utiliser avec la méthode de filtrage d'image, le flou, les détails du contour, mode d' amélioration des bords, netteté des bords en relief, le mode lisse, lisse, lisse, rang de boîte coussin, jeune fille, filtre minimum, avec la méthode de filtrage d'image, le flou, les détails du contour, le mode d' amélioration des bords, la netteté des bords en relief, le mode lisse, lisse, lisse, rang de boîte coussin, jeune fille, filtre minimum, filtre maximum. Vous pouvez les appliquer une par une, toutes dans cette image. Je ne vais pas vous montrer tout ça. N'oubliez pas qu'il s'agit du filtre du module Pillow, non du Kintro Sans le module Pillow, vous ne pouvez pas appliquer ce filtre, et vous devez vous en souvenir. C'est tout pour ce tutoriel. Merci d'avoir regardé cette vidéo. Restez à l'affût de nos prochains tutoriels. 39. Utiliser le module ttk: Bonjour, les gars. C'est bon de te revoir. Encore une fois, je suis de retour avec un nouveau tutoriel, et dans ce tutoriel, nous allons leur apprendre à utiliser des assistants avec TTK Maintenant, qu'est-ce que TDK ? Qu'est-ce que le magicien TTIK ? Le module Kind TTK fournit un assistant moderne d'apparence native avec des capacités de thématisation. Contrairement aux assistants Tinter classiques, les assistants TTK sont plus cohérents avec l'apparence de la plateforme et peuvent être personnalisés à l'aide de styles et personnalisés à l'aide Maintenant, au lieu d'utiliser le module TK, nous allons utiliser le module TTK Nous allons apprendre comment utiliser le module TTK, assistant de style avec le style TTK Nous allons également en apprendre davantage sur les thèmes personnalisés. Enfin, je voudrais vous donner un exemple de TTKMDU Nous allons créer un thème personnalisé pour un mini chat. Dans ce tutoriel, nous allons nous concentrer sur l'utilisation du module TTk Dans un premier temps, nous devons comprendre ce qu'est la lune TTC. Le module TTC est une extension d' inter qui fournit des assistants au look moderne, adaptés au thème des systèmes d'exploitation Contrairement aux assistants classiques tels que la saisie des libellés des boutons, leurs homologues TTK tels que TTK Button, TTKlabel TTKEntry utilise automatiquement TTKlabel TTKEntry saisie des libellés des boutons, leurs homologues TTK tels que TTK Button, TTKlabel TTKEntry utilise automatiquement un style cohérent avec le système. Vous pouvez l'appeler version plus mise à jour et mise à niveau du module TTK Commençons maintenant par l'aspect pratique et voyons comment utiliser les assistants TTK de base de TTKule Comme vous pouvez le voir, nous sommes dans le code Eater de mon studio Wiz, et je crée une fenêtre Kiner simple et basique Voici une géométrie 300 x 200. Maintenant, dans un premier temps, nous devons importer le module TDK. Donc ici, je vais taper depuis Kiner, je vais importer TTK Ensuite, je vais créer une étiquette TDK. Je tiens à dire que nous allons créer une étiquette mais ne pas utiliser le module T. Nous allons utiliser TT Mood. Je tiens à dire que nous devons créer une étiquette, mais je n' utiliserai aucune classe TK. Nous allons utiliser TTCass. Donc ici, je crée un niveau variable égal à au lieu d'utiliser TK, ici j'utilise TK, tt Label et nous le mettons dans une racine. Ensuite, le texte de notre étiquette est « Entrez Uni ». En gros, dans ce tutoriel, je vais créer plusieurs assistants TTk Ensuite, je vais emballer cette étiquette, le pack Level Dot, et je fournirai un peu de rembourrage selon la direction de YX Après cela, je vais créer un champ de saisie module TK en utilisant TTKClass Pour cela, je vais définir une entrée variable et une entrée égale à une entrée à point T tt, et nous plaçons ce champ de saisie dans notre fenêtre racine, puis je comprime ce champ de saisie. la même manière, de la même manière, je vais créer un bouton de soumission. Je définis un bouton variable, bouton égal au bouton TK, et je le place dans une fenêtre racine et le texte de notre bouton est soumis. Je vais également créer un autre assistant en utilisant TTKClass et le nom de notre assistant est Ici, je vais taper combo, combo égal à deux, je vais taper T point Combo Box. Ensuite, à l'intérieur du rond, je vais le placer dans une fenêtre racine Et je vais transmettre les valeurs. Ensuite, à l'intérieur du carré s ici, nous devons définir toutes les valeurs de la liste déroulante En gros, nous devons créer une liste de valeurs de boîtes à options, et en tant que valeurs, je vais transmettre le nom des langages de programmation, Python, Java, C plus plus et JavaScript. Après cela, nous devons emballer le type de boîte à options, le type de boîte à options, la méthode PAC à points combinés. Je vais ajouter un peu de rembourrage à xs, cinq FixelPadn. Ensuite, je vais configurer ce fichier. Ici, j'utilise plusieurs assistants. Maintenant, après avoir défini ce fichier et exécuté ce code dans mon terminal, voici à quoi ressemblent nos assistants TTK Il a un look professionnel et moderne. Si vous l'utilisez, alors le même code Python est obtenu à partir d' un bleu natif spécifique. Je tiens à dire que si vous possédez Windows, les boutons ressemblent à des boutons Windows. Et si vous possédez des MC W, cela ressemble à des boutons Mac. C'est pourquoi nous préférons TK à Tiki. Voici donc le premier tutoriel à ce sujet. Dans la partie suivante de ce didacticiel, nous allons styliser les assistants en utilisant les méthodes de style ttkdt Merci donc d'avoir regardé cette vidéo, restez connectés pour notre prochain tutoriel. 40. Styliser les widgets avec ttk: Bonjour, les gars. C'est bon de te revoir. Encore une fois, je suis de retour avec un autre assistant d'équipe lié au tutoriel. Aujourd'hui, dans ce tutoriel, nous allons découvrir la méthode de style ttkt Maintenant, c'est quoi ça ? La classe de style Tt contrôle l'apparence des assistants. Grâce à lui, vous pouvez personnaliser la police, la couleur, les bordures, le rembourrage et même le comportement de l'assistant dans différents états, et même le comportement de l'assistant dans tels que HoberPrest C'est assez similaire au style CSS. Dans un premier temps, vous devez créer un objet de style. Et dans notre deuxième étape, nous devons configurer un style d'assistant. Chaque assistant T possède un nom de style par défaut. Exemples pour le bouton, nous devons taper le bouton T, pour l'étiquette, nous devons taper l'étiquette T, pour l'entrée pour taper l'entrée T, et pour le cadre, nous devons taper le cadre T. À la troisième étape, vous pouvez créer un style de nom personnalisé. Au lieu de modifier le style global, vous pouvez créer le vôtre à la quatrième étape Nous allons utiliser la fonction de carte à points. Ici, en fonction de plusieurs états, nous pouvons concevoir notre assistant, par exemple en appuyant touche active pour désactiver le focus. Commençons donc par la pratique et voyons comment appliquer la méthode Ttktyle Donc, comme vous pouvez le voir, nous sommes dans mon éditeur de code sal studio et je crée ici une simple fenêtre d'inter de base, et j'importe également TClass Dans un premier temps, nous devons créer un objet de style. Pour cela, je vais définir ici un style variable, un style égal au style Ttkdt Donc, en utilisant la classe de style, nous définissons un objet. Ensuite, nous devons choisir un thème. Pour cela, je vais taper style, style, point de style temporel ainsi. Incorporez le style Dot Tuss à l'intérieur des robes rondes. Dans le cours R, je vais taper CL AM. Ici, nous utilisons clam Time pour ce type. Ensuite, je vais définir un bouton dans la fenêtre pour taper BTN ou une variable n équivalent à, et nous allons définir le bouton en utilisant TT glassy TK, Ensuite, à l'intérieur des robes rondes, je vais le placer dans la racine de la fenêtre et texte de notre bouton est égal au texte contenu dans les codes doubles à l'intérieur des codes doubles. Ici, je passerais le bouton de style. Je veux aussi appliquer ce style. Pour cela, nous devons utiliser le paramètre de style, sinon l'attribut de style. Ensuite, à l'intérieur des codes individuels, je vais appliquer ici mon bouton DotT Ce style, je veux appliquer ce style. Nous devons maintenant définir ce style. En gros, nous définissons ici un style de nom personnalisé. Nous l'appelons bouton point P. Si nous n'avons pas défini de style personnalisé pour ce bouton, il appliquera le même style aux autres boutons. C'est assez similaire à la classe. Nous définissons ici une classe particulière pour ce bouton. Ensuite, nous devons emballer ce bouton. Pour cela, je vais attacher un pack de points à dix boutons Mathog. Ensuite, à l'intérieur des rondelles, je vais ajouter un peu de rembourrage au niveau du YXSpad Y et au niveau du rembourrage de 20 et Ensuite, nous devons configurer ce bouton. Je veux dire styler le bouton. Ici, je vais définir un bouton de style de commande unique. Ensuite, en dessous, nous devons taper style style point configure Method. Configurez. Ensuite, à l'intérieur des robes rondes, je vais passer le nom du bouton, qui est le mien Je copie le nom du bouton et dans les codes simples, dans les codes doubles, je vais passer le nom du bouton. Acoma, nous devons ensuite utiliser les propriétés telles que la police, police, la police égale à, ici je veux appliquer la police aérienne Au lieu de la double couche, je vais opter pour le cadran. Ensuite, je vais définir la taille de police et je veux utiliser 12 pixels. Ensuite, je vais fournir le poids de la police, qui est en gras. la même manière, je vais appliquer du found color, du found white. Ensuite, je veux postuler, fond noir. Ensuite, je vais ajouter un peu de rembourrage, un rembourrage égal à, et je vais ajouter un rembourrage dans toutes les directions Donc, dans tous les sens, j'utilise dix pixels. Et entre les valeurs, vous devez indiquer une virgule, sinon vous allez lancer un point. Après avoir défini ce fichier, si j'exécute ce code dans mon terminal, voici à quoi ressemble notre bouton de style. Vous pouvez maintenant voir que la couleur perdue signifie que la couleur de police est blanche et que la couleur de fond est noire Si je le mets en bleu, si je veux le rendre bleu, et qu'ils définissent ce fichier et réexécutent ce code, vous pouvez voir le résultat Parlons maintenant de l'état, façon dont nous pouvons appliquer l'état en utilisant la méthode de la carte à points. Par exemple, lorsque notre bouton est actif, je veux dire quand je clique sur ma couleur sur ce bouton, je veux dire quand il est actif, puis je veux modifier les propriétés telles que la couleur d'arrière-plan et la couleur de premier plan Permettez-moi de vous montrer comment nous pouvons utiliser la méthode cartographique. Pour cela, je vais utiliser la méthode map, mais avant de définir une seule commande, je vais taper en utilisant la méthode point map. Je devrais être petit. Maintenant, sa méthode de carte à points de style type. Carte. Ensuite, à l'intérieur des rondes , vous voulez d'abord cibler le bouton en question en utilisant son style nm personnalisé À l'intérieur du double parcours, je vais passer mon bouton. Il ne reste plus qu'à sélectionner ce bouton. Je souhaite modifier la couleur de police. Lorsque je survole mes voitures sur ce bouton, sinon, appuyez sur le bouton. Pour cela, pour cela, d'abord, je vais choisir mes propres couleurs que je vais nouer pour le sol. Le premier plan est égal à, et ici nous devons transmettre une liste. Donc, à l'intérieur de ce carré, il est indiqué que lorsque notre bouton est loué, certains types de PRD ED sont loués, alors je veux changer la couleur de ce téléphone Je veux qu'il soit jaune. Et je vais configurer ce fichier. Après avoir défini ce fichier, si j'exécute ce code dans mon terminal et que j'appuie sur le bouton, vous pouvez maintenant voir la couleur de notre bouton passer du jaune au blanc au jaune. Ensuite, je souhaite changer la couleur de fond. Après le coma, je vais sélectionner l'arrière-plan. Fond égal à l'intérieur de la base carrée, à l'intérieur de la base carrée , si on appuie sur notre bouton, alors je copie cette déclaration et si on appuie sur notre bouton, je veux changer la couleur de cet arrière-plan, je veux le rendre rouge rouge rouge et je vais remplacer pi Maintenant, changez la couleur de premier plan et la couleur d'arrière-plan, là où nous appuyons sur le bouton Donc, après le fichier Sypris, si je lance mon code dans mon terminal et que je clique sur ce bouton, vous pouvez maintenant voir notre couleur de fond devenir rouge et notre couleur amusante devenir jaune Ensuite, lorsque j'entends ma couleur sur ce bouton, je veux changer la couleur d'arrière-plan. Je veux le rendre rose. Pour cela, dans notre section d'arrière-plan après le coma, je vais utiliser un autre état de style, qui est actif. Donc, pendant le tour plutôt que dans les codes doubles, je vais réussir, je vais taper active. Actif lorsque notre bouton est actif, alors je veux changer la couleur d'arrière-plan et notre couleur de fond est rose, et je vais définir ce fichier. Après avoir défini ce fichier, vous exécutez ce code dans mon terminal, et lorsque je mets de la couleur sur ce bouton, vous pouvez voir le résultat Maintenant, c'est devenu rose. Si vous voulez le rendre vert, oui, vous pouvez simplement remplacer le rose par du vert et définir le fichier. Si je loue mon code et que je tape ma couleur sur ce bouton, vous pouvez voir le résultat. Maintenant, il est devenu vert. Voici donc comment appliquer un état de style avec methop. J'espère que le concept est maintenant clair Fody. Dans ce didacticiel, nous apprenons donc comment styliser les assistants avec tt style Mathup J'espère que le concept est maintenant ClearFodi. Merci d'avoir visionné cette déclaration vidéo pour notre prochain tutoriel. 41. Thèmes personnalisés dans ttk k: Bonjour, les gars. C'est bon de te revoir. Encore une fois, je suis de retour avec un nouveau tutoriel. Aujourd'hui, dans ce tutoriel, je vais parler de thèmes personnalisés, de thèmes personnalisés en TTK La classe de style TTK vous permet de gérer style de l'assistant et de passer d'un thème intégré à un thème personnalisé Thème disponible, vous pouvez sélectionner : win native, clame, Vista classique par défaut, expinative, etc. Il s'agit des thèmes disponibles que vous pouvez sélectionner. Nous avons déjà utilisé un thème dans notre précédent tutoriel, qui est Clam Vous pouvez également utiliser Vista, Classic également, comme vous le souhaitez. Vous pouvez également créer votre propre thème en chantant et en modifiant le thème existant Étudions la pratique et essayons de comprendre de quoi je parle. Comme vous pouvez le voir, nous sommes dans mon éditeur de code Visual Studio, et j'ai ouvert ici mon précédent Python Five. Nous apprenons ici comment utiliser la méthode cartographique, comment styliser les boutons et comment configurer les assistants Vous pouvez maintenant remarquer comment nous appliquons un thème revendiqué. Si je définis ce fichier et que j'exécute ce code dans mon terminal, maintenant, après avoir appliqué ce thème, voici à quoi il ressemble. Voici à quoi ressemble notre bouton. Mais si je change de thème, laissez-moi vous montrer si je fais de Vista un type VIS TA, puis que je définis ce fichier et que je lance ce code dans mon terminal. Vous pouvez maintenant voir le résultat différent. Après avoir appliqué le thème, il faut changer le bouton fonction du style du thème. De même, si vous souhaitez en appliquer un autre, tel que le classique, au lieu de l'utiliser, je vais appliquer le classique. Définissez ensuite ce fichier et réexécutez ce code. Vous pouvez maintenant voir un résultat légèrement différent pour ce bouton. Voici à quoi cela ressemble après avoir appliqué le bouton classique. Tout est une question de thème. Mais dans ce tutoriel, j'essaie de vous montrer comment nous pouvons créer notre propre thème personnalisé. Pour cela, je vais définir un autre fichier Python dont le nom final est le thème de soulignement personnalisé point Pi Dans un premier temps, je vais importer les modules nécessaires, TK et TK. Après cela, je vais créer la fenêtre racine en utilisant la classe TK. De plus, j'attribue un exemple de thème personnalisé au titre. Ensuite, j'exécute la boucle principale, root point main loop. Après cela, nous devons définir l' objet de style en utilisant la classe TT. Donc, tapez le style égal à la classe de style Tt, et maintenant le style devient un objet, créé par la classe de style. Je vais maintenant créer des quizards. En gros, je souhaite créer un identifiant à partir de. Formulaire de connexion thématique personnalisé. Et pour créer le login à partir de, nous devons prendre une étiquette. Je tape donc label, TT label parce que Hero a utilisé classe TD pour cette étiquette à points tt, et nous l'avons placée dans une fenêtre racine et le texte de notre étiquette est le nom d'utilisateur. J'emballe cette étiquette avec YXSpaddy. Ensuite, je vais me familiariser avec l'entrée. Je vais donc taper une entrée à point t et je place ce champ d'entrée dans une fenêtre racine, puis je vais emballer cette entrée Ensuite, nous devons définir une autre étiquette pour le mot de passe. Nous devons définir une autre étiquette et une autre entrée. Notre étiquette suivante est mot de passe et je crée une entrée pour ce mot de passe, et dans notre champ de saisie pour le mot de passe, au lieu d'afficher les caractères, je montre ici les étoiles. Quel que soit le personnage que nous croisons dans ce champ, il l' affichera sous forme de signe astrologique Ensuite, nous devons créer un bouton de connexion. Pour cela, je vais prendre un bouton à points et le placer dans une fenêtre racine et le texte de notre bouton est login. Je vais configurer ce fichier. Après avoir défini ce fichier, si j'exécute ce code dans mon terminal, voici à quoi ressemblent le bouton de connexion et le mot de passe. Je vais maintenant créer un thème personnalisé et je vais appliquer ce thème personnalisé à ces boutons. Non seulement les boutons, je vais également les appliquer dans une entrée d'étiquette. Après avoir défini cet objet de style, je vais taper une seule commande, créer un thème personnalisé. Ici, pour créer le thème personnalisé, nous devons taper le style Object dont nous avons besoin pour utiliser cette classe theme create. À l'intérieur des robes rondes , nous devons d'abord fournir un thème personnalisé Dans le double code, je vais leur passer la virgule supérieure, puis nous devons passer le thème parent Tapez parent et pour le thème parent, je vais taper Clem Nous devons également définir les paramètres de configuration, et c'est le principal. Dans les paramètres, je vais fournir un dictionnaire. En gros, ici, nous allons modifier le thème existant, qui est revendiqué dans notre propre thème personnalisé, qui est basé sur le thème de réclamation. Tout d' abord, je vais styliser les boutons. Pour cela, dans le dictionnaire des paramètres, notre première touche est le bouton T. À l'intérieur du double cours, je vais taper le bouton T, puis deux points. Ensuite, dans les poses, puis dans la liste ici, je vais configurer C'est un cours de base de données à taper, configurer, puis à l'intérieur des deux points, je vais créer un autre dictionnaire. Ici, vous pouvez voir dans le dictionnaire des paramètres que nous avons une valeur tibétaine. C'est un article du dictionnaire. Et dans ce dictionnaire tibétain, nous créons ici un autre dictionnaire, qui est configuré. Je vais maintenant configurer les propriétés, telles que le premier plan. Maintenant, dans le double plat, je vais taper quatre white white. Après cela, je vais définir le fond pour le fond, j'utilise cette couleur. Ensuite, je vais définir la police pour la police, HertyFont Aerial, 12 pixels et gras Ensuite, après avoir configuré le bouton T avec ces propriétés, je veux changer, je veux changer la couleur d'arrière-plan chaque fois que j'active ce bouton. De plus, je souhaite changer la couleur de fond chaque fois que j'appuie sur le bouton. Pour cela, dans ce dictionnaire tibétain, ici, je vais prendre un autre élément, qui concerne les mathématiques. Ensuite, à l'intérieur de la robe Cali puis à l'intérieur des calices, je veux changer le fond Je souhaite changer l'arrière-plan lorsque j'ai actionné ce bouton. Lorsque j'ai appuyé sur le bouton T, je veux le changer en cette couleur et là où j'appuie sur le bouton, je veux aussi le changer en cette couleur. est également nécessaire de fournir une virgule entre ces deux v car ils sont tous des valeurs de dictionnaire, configurées et cartographiques Donc, virgule, je vais passer cette carte de valeurs. Maintenant, dans le dictionnaire des paramètres, nous avons la touche T. Ensuite, si nous appuyons sur la touche T, nous passerons aux deux autres dictionnaires, configuré et cartographié. Dans notre section configurée, nous configurons la couleur de premier plan, la couleur d'arrière-plan, police, etc. Dans notre section de carte, nous changeons simplement la couleur d' arrière-plan W le bouton est actif et lorsque le bouton est enfoncé. C'est pour les boutons, et nous utilisons le style T, c'est pourquoi nous devons taper les boutons T. Ensuite, après la virgule, de la même manière, nous devons styliser les étiquettes, les étiquettes en T. Ensuite, dans l' ali par rapport à ici, je vais configurer la couleur marron pour le bleu de l'étiquette et aussi changer la couleur de la police. Harrow est une police Helica, et nous la fabriquons en taille 12 Ensuite, après le coma, je vais styliser le champ de saisie. Hear a configuré ce champ de saisie. Pour cela, tapez notre touche T, configurez-la et ajoutez un rembourrage de cinq pixels Je vais configurer ce fichier. C'est ainsi que nous pouvons créer notre thème personnalisé. Et le nom de notre thème est mon thème. Si j'exécute ce code dans mon terminal, vous pouvez voir les modifications. Rien ne va se passer car nous créons simplement le thème, nous ne l'appliquons pas. Nous devons maintenant appliquer le thème dans cette fenêtre. Pour cela, nous devons utiliser un calcul. Ici, nous devons taper style dot theme use. Ensuite, à l'intérieur des cuivres ronds , à l'intérieur des codes doubles, cette fois, je vais utiliser notre propre thème personnalisé. C'est ça. Je vais configurer ce fichier. Après avoir défini ce fichier, si j' exécute ce code dans mon terminal, vous pouvez voir le résultat ici. Ici, vous pouvez voir si nous avons réussi appliquer notre propre thème personnalisé. En gros, nous personnalisons notre thème existant, un thème propre. Nous personnalisons ce thème et changeons couleur de fond de couleur ronde pour le bouton, également pour l'étiquette Te, également pour l'entrée. Pour l'entrée, il suffit d'ajouter un peu de rembourrage. C'est pourquoi il semble beaucoup plus grand que le précédent. J'espère que maintenant le concept est clair pour vous, comment nous pouvons créer notre propre thème personnalisé et comment nous pouvons appliquer plusieurs thèmes prédéfinis tels que native, claim ou default, etc. C'est tout pour ce tutoriel. Merci d'avoir regardé cette vidéo, restez connectés pour le prochain tutoriel. 42. Créer des applications GUI à l'aide de classes: Bonjour, les gars, c'est bon de vous revoir. Encore une fois, je suis de retour avec un nouveau tutoriel, et aujourd'hui dans ce tutoriel, nous allons commencer un nouveau chapitre. Nous allons appliquer la programmation orientée objet dans Kinter. Nous connaissons tous l'importance de la programmation orientée objet dans notre projet. Cela rend notre code plus propre. Je rends notre application évolutive, également réutilisable. Dans cette section, nous allons créer des applications GI à l'aide de classes. Au lieu de tout écrire dans un style procédural, vous pouvez structurer votre interface graphique au sein d'une classe. Cela rend votre code modulaire et réutilisable. Et dans la partie suivante de ce didacticiel, nous allons apprendre à structurer une application plus large. Pour les applications plus volumineuses, vous pouvez créer des cadres sous forme classes distinctes, puis passer de l'une à l'autre, comme des pages. Ensuite, nous allons parler d'héritage. Héritage avec réutilisabilité de l' assistant. Vous pouvez créer des assistants personnalisés en héritant de Kinder Wizards héritant de Kinder Étape par étape, je vais vous guider dans tout cela. Dans ce didacticiel, nous allons parler de la façon dont nous pouvons créer des applications GI à l'aide de classes dans Kiner. Si vous n'avez aucune connaissance de la programmation orientée objet, vous pouvez consulter ma section précédente. C'est facultatif, mais dans cette section, je couvre tout ce qui concerne programmation orientée objet en Python. Et si vous avez déjà des connaissances en programmation orientée objet, vous pouvez commencer par ce cours. Il s'agit généralement de la première étape l'enseignement orienté objet avec Kiner car cela aide les étudiants à passer d'un code de style procédural à un code de structure basé sur les classes Maintenant, mes cours à Kiner. Cela permet d'organiser notre code, de faciliter la réutilisation de l'assistant et de la logique, de convenir à des applications plus importantes, permettre aux méthodes de gestion des événements de rester au sein de la classe. Si vous parlez de l'avantage par rapport au style procédural, cela vous donne un code plus propre. Une logique se trouve à l'intérieur d'une classe. De plus, il est évolutif. Il est facile d'ajouter à la fois un assistant et des méthodes. De plus, il est réutilisable. Vous pouvez étendre la classe pour de nouvelles fonctionnalités. Donc, sans perdre votre temps, commençons par l'aspect pratique et voyons comment nous pouvons l'utiliser, comment nous pouvons utiliser les classes dans notre projet. Comme vous pouvez le voir, nous sommes dans mon studio so coordinateur et je crée le fichier Python main point pi. Dans un premier temps, je vais d'abord importer notre module Kiner. Donc route, importez Kiner en tant que T. Ensuite, je vais définir une classe et la classe héritera de la classe TK Donc, la classe, et le nom de notre classe, est mon application, Mapp et cette classe Maya en hauteur avec une classe T, un point PK de type t et dans cette classe pour l'instant, je vais taper pass Après cela, après cela, je vais appeler si le nom égal à égal à la fonction principale. Type I, nom du trait de soulignement , caractère de soulignement égal à l'intérieur des codes doubles, soulignement de soulignement, fonction principale du soulignement, Mince. de soulignement, fonction principale du soulignement, Mince. Ensuite, dans cette fonction, je vais créer un objet. L'objet utilisant cette classe de mon application. Ici, je suis de type A égal à M A. Nous créons cet objet en utilisant cette classe, mon application. Ensuite, je vais lancer la boucle principale. Tapez donc dans la boucle principale pour créer la fenêtre. Maintenant, votre première question, pourquoi j'utilise si le nom est égal à tequs pour signifier, cette méthode, pourquoi j' utilise cette condition Si le nom est égal à tequos pour moi. Parce qu'ici, nous exécutons le fichier directement. Nous n'importons pas le fichier depuis un autre fichier ou un autre module. C'est pourquoi nous devons utiliser un nom égal à la fonction principale et c'est important. Ce bloc de code vous permet d'écrire des modules réutilisables tout en permettant au crept de fonctionner lui-même. Maintenant quoi ? Si j'exécute ce code, je lance ce code, il va créer un inter-vent de base. Laisse-moi te montrer. Donc, pour exécuter ce code, comme vous pouvez le voir, cela crée un vent intermédiaire de base. Maintenant, revenons au cours. La classe Maya en hauteur avec la classe T. Maintenant, dans cette classe Maya, nous devons d'abord créer un constructeur Donc, donnez un pourboire à Dave : il souligne que c'est un constructeur innit et qu'à l'intérieur du terrain, il la SL est l'abréviation de l'objet lui-même. Je veux parler de l'application elle-même. Nous le savons déjà. Vous pouvez maintenant remarquer que cette classe est directement liée à la classe TK, qu'elle hérite de la classe TK et que la classe T elle-même possède son propre constructeur innit, et ici nous redéfinissons le constructeur et ici nous Maintenant, nous ne sommes pas en mesure d'utiliser propriétés TClass telles que les variables, les variables instance TKlass, les variables de classe, etc. Pour résoudre le problème ici dans le constructeur init, nous devons créer un constructeur superstruct Je vais taper super then dans und brass, puis taper point underscoe underscoe Init constructor Si nous faisons cela, nous pouvons maintenant utiliser des variables de classe T, telles que la variable d'instance, la variable de classe, etc., ainsi que d'autres fonctions et méthodes Alors ici, je vais définir un titre pour définir le titre de cette application, de cette fenêtre, nous devons utiliser les cellules self, dark, title method, et dans les versets ronds, dans les codes doubles, je vais taper ici je vais taper ici je vais taper la programmation orientée objet, par exemple. Je vais maintenant définir ce fichier et exécuter ce code dans mon terminal. Vous pouvez maintenant voir qu'il a réussi ajouter un titre à cette fenêtre. Orienté objet, par exemple, mais quoi ? Si je commente ce superconstructeur, puis que je redéfinit ce fichier et essaie de l'exécuter, laissez-moi vous le montrer C'est par une flèche car, comme je vous l'ai dit, lorsque je crée le constructeur ing, il remplace l'application Je remplace le constructeur de la classe parent, et cette application est créée avec la classe TK Pour l'utiliser, nous devons utiliser le constructeur superit. Maintenant, encore une fois, nous pouvons utiliser toutes les propriétés de TClass et vous devez le comprendre Dans notre exemple précédent, nous utilisons les noms d'objets tels que root. Mais dans ce cas, si nous utilisons la classe à l'intérieur de la classe, nous utiliserons l'ensemble. Donc, de la même manière, je vais définir la géométrie. Tapez donc self dot geometry, 300 x 200. Après cela, après avoir défini la géométrie, je vais créer un assistant. Je vais créer une étiquette. Attachez donc l'étiquette à points automatique, T étant égal à l'étiquette à points p. Ensuite, je veux le placer dans une fenêtre automatique. Self signifie dans notre cas, l'application. Ensuite, j'ai défini le texte de cette étiquette, bonjour Kinder avec le programme de location OPP Object et j'utilise une police, une police aérienne et notre taille de police est de 12 pixels Ensuite, nous devons, puis nous devons emballer cette étiquette. Label Self point label dot tag à l'intérieur de la course Brass Paty de dix pixels Je vais régler celui-ci. Je vais maintenant définir un bouton. Je tape donc le bouton SL Gut égal au bouton t point, et nous le mettons dans une fenêtre automatique. Et le texte de notre bouton est « Cliquez sur moi ». Et comme vous pouvez le voir, elle utilise le paramètre de commande. Mais vous pouvez remarquer qu'en appelant la fonction, nous utilisons self chaque fois que vous avez besoin d'utiliser SL. Si vous créez des variables, sinon des fonctions, sinon appelez des fonctions, vous devez appeler St car nous sommes dans la classe et elle utilise un constructeur C'est un constructeur. Je tape commande égale à la méthode SelbdToClick Ensuite, je vais emballer ce bouton. Pour cela, encore une fois, nous devons taper la méthode Silt Dot Button Dot Pack Après cela, nous devons gérer cette fonction pour ce bouton, et ici je vais gérer le bouton à l'intérieur de cette classe. Donc, pour cela, je n'utiliserai aucune commande approfondie. Je veux juste taper sur le trait de soulignement, cliquez sur Cliquez égal à ici À l'intérieur des bretelles rondes, nous devons passer le self self ker Ensuite, dans la méthode onclic, ici, je veux configurer Je souhaite configurer cette étiquette. Je vais donc taper la méthode de configuration par points self label. Configuration. À l'intérieur des accolades, du texte, du texte égal à l'intérieur du double code, je vais taper le bouton, cliquer, le transmettre Oups. Nous devons le créer en dehors de l'étiquette d'indentation, en dehors du constructeur informatique J'ai donc coupé cette partie et déplacé vers l' extérieur l' étiquette d'indentation du constructeur innit Sinon, cela ne fonctionnera pas, ce qui se trouve à l'intérieur de la classe, mais en dehors du constructeur innit. P a défini ce fichier. j'exécute ce code dans mon terminal, vous pouvez voir ici notre étiquette hello kinter avec programmation orientée objet et nous avons le bouton, click me Si j'appuie sur le bouton, vous pouvez voir le bouton cliquer. Notre fonction fonctionne parfaitement. Juste une chose dont vous devez vous souvenir : tous les éléments de l'interface graphique tels que le bouton d'étiquette sont initialisés lors de la création de la classe Tous ces éléments s'initialisent avec self object. Ces objets personnels désignent l'application elle-même. Ce qui est créé par mon application. Voici donc le premier exemple programmation orientée objet, lequel je vous apprends comment utiliser des classes pour créer une application d'interface graphique. J'espère que c'est clair pour toi maintenant. Dans le prochain tutoriel, nous allons structurer une application de plus grande envergure Pour les applications plus volumineuses, vous pouvez créer des cadres en tant que classe distincte et les balayer entre les pages C'est donc tout pour ce tutoriel. Merci d'avoir regardé cette vidéo, restez connectés pour notre prochain tutoriel. 43. Structurer des applications plus grandes: Salut, les gars, c'est bon de vous revoir. Encore une fois, je suis de retour avec un nouveau tutoriel aujourd'hui. Dans ce tutoriel, nous apprenons comment nous pouvons structurer application plus large à l'aide de classes Pour BigAAPS, vous pouvez créer des cadres en tant que classes distinctes, puis passer de l'un à l'autre comme des pages En gros, lorsque votre application grandit, conservez tout dans un seul fichier ou une classe devient désordonnée. Une bonne pratique consiste à utiliser des cadres sous forme pages individuelles, puis à passer de l'un à l'autre dans la fenêtre principale de l'application. Commençons donc par l'aspect pratique et créons une application Kinter de plusieurs pages Comme vous pouvez le voir, nous sommes dans l'éditeur de code de mon studio Visa, et je crée déjà un fichier Python main point Pi. Dans un premier temps, je vais saisir Kintermdule. Donc ici, je vais taper input inker en tant que TK. Ensuite, je vais définir une classe. Ici, je vais taper class class et notre nom de classe est main A cette classe, la principale classe d'application hérite de cette classe TK classe TK est la classe parent de la classe d'application principale, et pour l'instant, je vais taper pass. Après cela, nous allons définir cette condition si le nom est égal à moi. Parce que nous l'utilisons pour garantir que votre application s'exécute uniquement lorsque le fichier est exécuté directement, non lorsqu'il est importé ailleurs. Après cela, dans cette condition, je vais créer un objet, un objet en utilisant cette classe. Donc, tapez app égal à l'application principale. Ici, nous créons l'objet d'application à l'aide de la classe d'application principale. Ensuite, je vais lancer la boucle principale. Donc, pour taper app point main loop. Cela va créer une fenêtre de base, une fenêtre intermédiaire de base. Nous l'avons déjà appris dans notre précédent tutoriel. Revenons maintenant à l'application principale et créons le constructeur Ici, je crée le constructeur, Dave, dsc undersco Ici, comme vous le savez, nous devons passer le paramètre Lt. Ensuite, nous devons en faire un superconstructeur, un constructeur super innit , taper super Round sus uncoe underscoe Init constructor, undersco UnderscoeRound ***. Dans notre précédent tutoriel, j'explique pourquoi nous avons besoin d' utiliser un superconstructeur Comme vous pouvez le voir, notre classe est dirigée par la classe T et la classe T elle-même possède un constructeur innit Dans notre application principale, nous avons également le constructeur innit Ici, nous redéfinissons le constructeur, mais nous devons utiliser notre classe parent : constructeur, méthode, fonctions variable Si nous ne l'utilisons pas, nous ne pouvons pas utiliser propriétés et les méthodes du constructeur de la classe parent C'est pourquoi nous devons utiliser le constructeur super innit. Cette super méthode. Après cela, je vais définir le titre pour taper self point title multipage inter app Ensuite, je vais définir la géométrie. Ici, je vais taper la géométrie automatique des points à l'intérieur du rond au lieu de 400 x 250 pixels. Ensuite, je vais créer un conteneur de quatre pages. Ici, je vais taper un conteneur égal à t point frame, continuer égal à la méthode tdt frame, et nous le mettons dans la fenêtre self Self dans l'objet, l'objet lui-même, à cette variable. Après cela, je vais emballer ce contenant. Je tape donc continent point pack et je définis fill both et j'étends True. Je vais sous-traiter ce fichier. En gros, nous créons un cadre vide principal et à l'intérieur de ce cadre principal de l'application, nous allons mettre deux autres pages ici. Pour cela, je vais utiliser des classes pour créer les pages. Ici, je vais taper une seule commande, page 1. Créons maintenant la première page. Je vais définir une classe, et le nom de notre classe est page 1. Première page du cours. Ensuite, à l'intérieur de la robe ronde en tant que classe parent, nous utilisons la classe de cadre time T. Le cours de la première page est plongé dans un cadre en verre à pois. Il se trouve dans un cadre à points, ce qui signifie que la première page est une sorte d'assistant de cadrage. Comme vous le savez, un cadre est comme un conteneur qui peut contenir d'autres assistants, tels que des étiquettes, des boutons, etc. Ensuite, dans cette classe, nous devons définir le constructeur d'initialisation Alors je tape d dedans. À l'intérieur du laiton rond, nous devons transmettre le paramètre de cellule et deux autres variables, car ce sont toutes des variables de classe telles que le parent et le contrôleur. Ici, le parent représente le conteneur, généralement un cadre de montage ou une fenêtre endroit où ce cadre sera placé et la variable du contrôleur est une référence à la classe d'application principale. Vous pouvez appeler des méthodes telles que show frames et d'autres méthodes. Ensuite, dans ce constructeur, je vais utiliser ce super livre de mathématiques, constructeur super innit, et nous passons ici Comme vous le savez, nous sommes maintenant en mesure d'accéder au constructeur de la classe de brevets, T frame. Ensuite, je vais créer un assistant d'étiquetage dans ce cadre. Je crée une étiquette égale à t label, et nous la plaçons dans une cellule Selfo Window, puis le texte égal à celui-ci correspond à la première page, taille de police est de 14 et notre style de police est aérien Après cela, nous devons emballer cette étiquette. Ensuite, je crée un bouton, le bouton est égal au bouton acheté, je le place et moi dans une fenêtre automatique et le texte de notre bouton est « aller à la page Ensuite, je marque ce bouton. Comme vous pouvez le constater, nous n'utilisons aucun paramètre de commande pour ce bouton. Nous allons l'utiliser plus tard. Voici notre première page. Maintenant, de la même manière, je vais créer une autre page. Je duplique cette section, et ici, je vais taper un seul commentaire. Il s'agit de la page deux. Je vais également modifier le texte. C'est la page deux. C'est la page deux. Comme je vais changer le texte du bouton , je vais le faire passer à la première page. Revenons maintenant au cours Mine. Ici, je vais définir un dictionnaire. Ce dictionnaire va stocker tous les cadres. Je veux dire les pages. Tapez donc des cadres à points identiques à un dictionnaire rond par rapport à un dictionnaire vide. Ici, la clé représente le nom de la classe, et vous représentez l'objet de cadre réel créé à partir de cette classe. Ensuite, nous devons parcourir ces pages, telles que la page 1 et la page 2. Nous devons en faire deux, pas un. Il y en a deux. Donc ici, je tape F dans les pages 1 et 2. F signifie cadre. Ensuite, dans ce pro, frame égal à I dans le round contre continuer et self, je veux dire que cette boucle itère dans toutes les classes de pages et frame égal à F à l'intérieur du round par rapport au container et crée automatiquement un instant de cette page N'oubliez pas que continuer est l'assistant parent dans lequel se trouve la page et où self est le contrôleur principal. Je veux dire l'application principale. Je veux dire que lorsque F est égal à la page un, cela devient un cadre égal à la page un, et lorsque F est égal à la page deux, devient un cadre égal à la page deux. Ensuite, nous devons définir le nouvel objet cadre dans un dictionnaire à l'aide de la classe. Je veux définir dans ce dictionnaire de cadres. Pour cela, ici, nous devons attacher des cadres à points à l'intérieur des Rundresses Je vais transmettre la variable frames equivalent to frame Il a défini le nouvel objet de cadre dans un dictionnaire. En gros, il est très facile de récupérer un cadre. Et plus tard, nous pourrons facilement le montrer. Après cela, nous devons emballer ce cadre. Pour cela, je vais utiliser la méthode GET. Tapez donc frame point GED, numéro de ligne zéro, numéro de colonne zéro, sticky NSEW et non sud-est ouest Ici, nous plaçons le cadre dans un conteneur à la même position, numéro de ligne zéro et numéro de colonne zéro. En gros, tous les cadres se chevauchent dans le même espace. Et comme vous le savez, NSEW signifie remplir toute la fenêtre. Cela signifie qu'il va l' étendre au nord, au sud, à l'est et à l'ouest. Ensuite, en dehors de la boucle à quatre et à l'intérieur de cette classe, je vais définir une autre méthode. Donc, tapez, Sono type, Dave et function et le nom de notre méthode est show frame here in the show frame, ici je vais passer le paramètre elf et les classes de page Ainsi, chaque fois que nous appelons cette fonction, nous devons transmettre le nom de la classe de page ici, par exemple page une page deux. Après cela, dans cette méthode, nous devons récupérer l'objet de cadre demandé dans le dictionnaire Pour cela, tapez les cadres à points automatiques et ici pour fournir la classe de page variable. Et je vais le stocker dans une variable de cadre. Je vais donc taper frame égal à self dot frames. Et ici, nous devons transmettre le nom exact du cadre chaque fois que nous devons appeler la fonction. Ensuite, je vais utiliser l' importante méthode Kinter. Un KitermTod qui recouvre le cadre, laisse le cadre sélectionné au-dessus de tous les autres cadres dans un même conteneur et C'est un indice Z. Si vous savez comment fonctionne l'index Z dans les estimations et les CSS, vous le comprenez facilement. Pour cela, nous devons utiliser une méthode appelée T RiS. Donc, pour taper frame point, prenez RI. Cela va déplacer le cadre sélectionné devant les autres cargaisons. Après cela, nous devons appeler cette fonction, show frame. Pour cela, nous devons accéder à nos pages telles que la première et la page deux, et là, nous devons utiliser le paramètre de commande, la commande. Je vais utiliser la ligne O donc tapez Lambda, Lambda et ici, je vais taper controller, controller point, méthode Shoframes Je vais appeler la méthode Shoframe. Afficher les cadres, souligner le cadre. Ensuite, au cours des rondes de notre première page, je vais passer à la page deux. Je vais passer à la page deux ici. Copiez donc le nom de la classe, page deux, et je vais le mettre ici, page deux. Sur notre première page, si nous appuyons sur le bouton, il sera expédié à la page deux. De même, lorsque nous sommes en page deux, nous devons accéder à la première page. Je vais donc copier exactement la même commande et passer à la page suivante, et je vais fournir une virgule Après cela, j'ai mis la commande et je vais changer le nom de la page. Ici, je vais passer la première page du cours. Je vais donc remplacer la page deux par la première page. Et je vais configurer ce fichier. Maintenant, avant de définir ce fichier et d'exécuter ce code, je vais ajouter des propriétés à nos cadres. Je souhaite modifier leurs couleurs de fond. Ici, dans notre constructeur superit, après le coma, je vais taper BG BG signifie couleur de fond, et je veux utiliser la couleur bleu clair, un certain type, clair, bleu. la même manière, je souhaite utiliser couleur différente pour la deuxième page. Je copie la ligne et je la colle ici. Je vais changer le nom de la couleur et le rendre vert clair vert clair. Voilà, vous pouvez parfaitement identifier les pages. Si je définis ce fichier et que j'exécute ce code dans mon terminal, maintenant vous pouvez voir, maintenant vous pouvez voir dans notre fenêtre Cinter, que nous avons un cadre Nous avons un cadre à l'intérieur et à l'intérieur de ce cadre, nous avons un autre cadre. C'est la page deux. Si vous souhaitez passer à la première page, appuyez sur le bouton aller à la première page. Si j'appuie sur le bouton, vous pouvez maintenant le voir passer à la première page. C'est la première page. Encore une fois, si j'appuie sur ce bouton, il passe à la page deux. Maintenant, il y a un autre problème et laissez-moi vous montrer le problème. Si je lis mon code, vous pouvez maintenant voir qu'il s'est ouvert sur la dernière page. Je tiens à dire que la page s' ouvre trop vite. Tout d'abord, cela ouvre la deuxième page, mais je n'en veux pas. Je veux d'abord ouvrir notre page. Pour cela, nous devons le sélectionner . Laisse-moi te montrer où. Pour sélectionner la première page, nous devons appeler ici la fonction show frame. En dehors de la boucle à quatre boucles, ici, je vais taper la méthode Self-Set Dot Shaframe J'appelle cette fonction et B Default, je fournis le nom de la classe, page 1. Donc, veuillez définir ce fichier si j'exécute ce code dans mon arminal. Maintenant, vous remarquerez qu'il ouvre la page une en premier, car nous sélectionnons ici celle-ci, ShoFramePage Par défaut, je vais ouvrir la première page. Si j'appuie sur ce bouton, passez à la page deux, maintenant vous pouvez le voir passer à la page deux. Si j'appuie à nouveau sur le bouton, je reviens à la première page. J'espère donc que vous comprenez maintenant comment nous pouvons structurer une application plus large à l'aide de classes. Merci donc d' avoir regardé cette déclaration vidéo pour notre prochain tutoriel. Dans le prochain tutoriel, nous allons parler de l'héritage, façon dont nous pouvons utiliser l'héritage dans des applications de type. 44. Exemple 1 - Bouton stylisé personnalisé: Encore une fois, je suis de retour avec un nouveau tutoriel la programmation orientée objet avec Kiner. Et dans ce tutoriel, nous allons apprendre l'héritage et la réutilisabilité des magiciens dans Ginter Au lieu de réécrire un code d'assistant similaire, nous pouvons utiliser l'héritage pour étendre Kiner Wizard et créer des composants réutilisables personnalisés Nous pouvons l'utiliser pour les boutons, les étiquettes et les formulaires réutilisables. Et aujourd'hui, dans ce tutoriel, je vais vous montrer le premier exemple de bouton de style personnalisé. Nous allons définir une classe de bouton personnalisée, et nous allons utiliser cette classe, et nous allons utiliser la même classe plusieurs fois pour créer le bouton. Commençons donc par la pratique et voyons comment nous pouvons le créer. Comme vous pouvez le voir, nous sommes dans mon éditeur de code Salt Studio et je crée un fichier Python main point P. Dans un premier temps pour importer le module. Je tape import Kiner en tant que TK. Ensuite, nous devons définir une classe pour l'application. Alors tapez class my app. Et cette classe est dans la classe Had by TK, et à l'intérieur pour le moment, je vais taper pass. Ensuite, vous devez passer chaque nom égal à égal à fonction principale à l'intérieur ici et à l'intérieur ici, je vais créer l'objet. Ce qui est utilisé par cette classe et le nom de notre objet est app. Ensuite, je vais taper app point Min Loop. Et je vais configurer ce fichier. Cela va créer une fenêtre intermédiaire de base. Après cela, revenons à la carte où je vais créer le constructeur Dans la carte, je vais supprimer la passe et créer le constructeur Tapez donc Dave init constructor. Ensuite, à l'intérieur de ce constructeur, nous devons en faire un superconstructeur Ici, je vais taper le constructeur SuperDTet. Ensuite, je vais attribuer un titre à cette application, un certain type, définir un titre à points dans l'exemple de bouton personnalisé Rundress Maintenant, je vais créer une classe qui va créer des boutons personnalisés. Pour cela, ici, je vais définir une autre classe et le nom de notre classe est custom button. Bouton personnalisé à l'intérieur des robes rondes, notre classe est en hauteur par rapport à cette classe, classe de boutons en T. Ensuite, dans cette classe, je vais créer le constructeur. Je tape D dedans, et dans les robes rondes, j'utilise self. Je vais également transmettre certaines variables telles que parent, text et command equal to none. Ensuite, dans le constructeur d'initialisation, nous devons le créer, nous devons faire un super constructeur d' initialisation Ensuite, au cours des rondes, je vais appeler la variable parent parent. Au-dessus de cela, je vais taper un texte égal à du texte. J'assigne cette variable à cette commande d égale à commande. Ainsi, chaque fois que nous créons le bouton, nous devons transmettre le texte du bouton, ainsi que la commande du bouton. Ensuite, je vais appliquer un certain style à ce bouton, comme la couleur d'arrière-plan, BG, la couleur d'arrière-plan pour la couleur d'arrière-plan que je vais utiliser dans les tableaux bleu clair bleu clair. Ensuite, après la couleur de fond, je vais postuler pour Don Color AG pour une couleur, comme ici, je vais utiliser la couleur noire. Ensuite, je vais appliquer une police sur une police égale à ici à l'intérieur des seins ronds, je vais utiliser une police aérienne en pixels et en gras Ensuite, je vais ajouter un peu de rembourrage à XX, tapez PAD X, dix, coma, pad Y, cinq pixels Je vais configurer ce fichier. Ensuite, nous devons emballer ce bouton. Tapez donc la méthode Self Dot Pack, et ajoutez également un peu de rembourrage lorsque j'emballe ce bouton Pad à YxS dix pixels. Je souhaite envoyer ce fichier. Vous pouvez remarquer que sa commande est égale à zéro. Par défaut, il n'exécutera aucune commande. Lorsque ci-dessus, nous appuyons sur le bouton, il va exécuter la commande que nous avons définie. Créons donc un bouton personnalisé. Pour cela, nous devons appeler le bouton personnalisé de la classe, et nous devons transmettre le paramètre el car c'est nécessaire. Sinon, ça ne marchera pas. Objet lui-même, et notre bouton prend ce bonjour, dites bonjour dans notre option de commande, dépêchez-vous de passer cette fonction, dites bonjour, point automatique, dites bonjour. De la même manière, je vais définir un autre bouton. Je vais définir un autre bouton personnalisé puis quitter notre Prap Pour cela, il suffit de taper le bouton personnalisé du nom de classe. Nous devons le placer dans un self, et notre bouton prend cette sortie et cette commande Harry, self point quitte cette méthode, méthode rapide. Maintenant, après avoir défini les deux boutons personnalisés, nous devons définir la fonction, dire bonjour. Nous devons définir la fonction say hello. Pour cela, je vais taper, Dave, dire bonjour et dans la runrass, vous devez passer le sl à l'objet lui-même Ensuite, je vais taper la déclaration d'impression. Dans cette fonction, je vais taper une instruction d'impression. Notre déclaration d'impression est « Bonjour depuis le bouton personnalisé » et je vais définir ce fichier. Et notre fonction rapide SL point quitte automatiquement l'application. Self représente l'objet exact. Tu vas tuer mon application d'application. Prédéfinissez donc ce fichier si j'exécute ce code dans mon terminal. Comme vous pouvez le voir, cela crée une fenêtre et vous pouvez voir les boutons. Ces boutons sont des boutons personnalisés. Nous ne créons pas les boutons plusieurs fois, juste pour utiliser leur classe. Ici, vous pouvez voir le style du téléphone, la couleur d'arrière-plan, couleur de la forge, la taille, le rembourrage, etc. Il figure déjà dans un modèle de cette classe, boutons personnalisés, et nous l'utilisons deux fois dans cette annonce. Donc, si j'appuie sur « Dis bonjour », maintenant vous pouvez voir dans notre terminal qu'il affiche Hello Hello à partir d'un bouton personnalisé. Et si j'appuie sur Exit, ça tue la fenêtre. Cela a tué la fenêtre de mon application. Voici donc comment nous pouvons utiliser les classes pour la réutilisabilité de l'assistant. J'espère que c'est clair pour toi maintenant. Merci d'avoir regardé cette vidéo. Restez à l'affût pour notre prochain tutoriel. Dans le prochain tutoriel, nous allons créer un champ de saisie personnalisé. Nous allons créer une entrée et une étiquette ensemble. Merci donc d' avoir regardé cette vidéo. Restez à l'affût pour notre prochaine édition. 45. Exemple 2 Champ de saisie personnalisé (étiquette + entrée ensemble): C'est bon de vous revoir, les gars. Encore une fois, je suis de retour avec un autre tutoriel sur les high tens et la réutilisabilité des assistants dans high tens et la réutilisabilité des assistants Aujourd'hui, dans cet exemple, nous allons créer un flux d'entrée personnalisé. Nous allons créer une étiquette et une inscription ensemble. Parfois, dans les formulaires GI, vous utilisez toujours l'étiquette et l'entrée par paire. Au lieu d'écrire la même étiquette et code d'entrée encore et encore, vous pouvez créer une classe réutilisable personnalisée. Cette classe va créer l'étiquette et l'entrée ensemble. Alors, sans perdre votre temps, commençons par l'aspect pratique et voyons comment nous pouvons l'utiliser. Comme vous pouvez le voir, nous sommes dans mon éditeur de code ist studio et je crée déjà un modèle de base en utilisant class, my app Nous devons maintenant créer l'entrée d'étiquette. Nous devons créer la classe. Je vais définir une classe ici, je vais taper une entrée de niveau de classe, et cette classe est affectée par la classe de cadre tdt Ensuite, dans cette classe, je vais créer le constructeur. Donc, saisissez-le d'abord dans les bases rondes, pour passer le soi, l'objet lui-même, puis ici je vais passer la partie et le texte de l'étiquette. Chaque fois que nous devons utiliser la classe d'entrée label , dans ce cas, nous devons transmettre l'objet self et le texte de l'étiquette. Ensuite, dans le constructeur de l'unité, ici, nous devons utiliser la super méthode avec parent En gros, il va hériter du cadre. Le parent hérite du cadre. Ensuite, dans le constructeur, nous devons créer une étiquette. Tapez donc l'étiquette à point automatique égale à un couvercle à cocher et vous devez la placer dans une fenêtre automatique. De plus, un texte d'étiquette est cette variable, le texte d'étiquette. Quel que soit le texte que nous transmettons dans cette classe, il le mettra dans cette étiquette, puis nous définirons ce qui suit cette étiquette, emballons également cette étiquette. J'emballe cette étiquette, slptlabel point PAP et je la place chez PT et j'ajoute un peu de rembourrage Ensuite, je vais créer un droit d'inscription. Donc, plongez SeldteEntry égal à TkEntry et Harry l'a mis dans Après cela, nous devons emballer le champ de saisie. Donc, pour emballer ce champ d'entrée, nous devons taper Selt Entry Dot Pack Math book Après avoir emballé le champ engy, je vais emballer l'objet personnel Je veux dire l'ensemble du cadre. Pour cela, je vais taper la méthode SalptPag, et j'ajoute un petit rembourrage Passons maintenant à l'application M. Ici, je vais définir l'objet créé par la classe d'entrée de niveau. Notre premier nom d'objet est name field. Donc, tapez el point name field égal à l'entrée de niveau, notre classe. Ici, nous appelons d'abord notre classe pour fournir la variable de cellule où nous allons placer notre champ de saisie de niveau, qui est l'objet lui-même, puis nous fournissons le nom du texte de l'étiquette. Ensuite, je vais utiliser à nouveau la même classe. Et cette fois, je vais créer un champ périphérique. champ Cellbt H est égal à l'entrée de l'étiquette, et cette fois je vais transmettre ce texte Et cette fois, je vais transmettre ce texte à notre page d'étiquetage et je vais définir ce fichier. Maintenant, après avoir défini ce fichier et exécuté ce code dans mon terminal, vous pouvez voir ici qu'il crée l'étiquette le champ de saisie. Et comme vous pouvez le voir, ici, nous appelons ce cours deux fois. L'un est pour le champ de nom et l'autre pour le champ H. C'est pourquoi il a utilisé l' étiquette « prière d'entrée ». Maintenant, nous devons créer un bouton. Mais avant de créer le bouton, avant de créer le bouton d'envoi, nous devons obtenir la valeur de ce champ de saisie. Pour cela, je vais définir une fonction. Donc, en dehors du constructeur d'initialisation, en dehors du constructeur d'initialisation, je vais définir une valeur de porte de fonction Dave gate value, puis dans cette fonction, puis dans cette fonction, je veux renvoyer la valeur du champ de saisie type return el point entry point Gate Method. Quelle que soit la valeur que nous transmettons dans les champs de saisie, elle obtiendra la valeur et nous devons la déplacer dans le niveau d'indentation, sinon elle passera par un A. C'est bien. Créons maintenant un bouton d'envoi dans l'application principale. Ici, je vais définir un bouton de soumission. bouton Soumettre est égal au bouton tdt et nous le testons dans une fenêtre automatique Notre bouton permet de soumettre et il va commander cette fonction d'affichage des données Au-dessus de cela, nous devons emballer ce bouton. Pour emballer ce bouton, je vais taper submit sco button point p method. Nous devons maintenant définir la fonction qui va imprimer le nom et la valeur de l'arête. Pour cela, en dehors du constructeur nit dans le constructeur, je vais définir la fonction, Dave affiche les données à l'intérieur du rond, Dave affiche les données à l'intérieur appuie sur pour transmettre la cellule, après cela, dans un premier temps, je veux imprimer le nom Pour imprimer le nom, nous devons obtenir une valeur à partir de cette méthode de valeur G, qui est dans notre classe. À partir de la classe d'entrée de niveau, nous devons accéder à la fonction de valeur G. Donc, pour taper, imprimer, nommer, ici, nom du point d'aide, champ, point Gt Val. À partir de la valeur G, nous allons extraire la valeur du champ de nom. Comme vous pouvez le voir, nous créons ici l' objet du champ de nom en utilisant cette classe. Quelle que soit la valeur que nous transmettons dans le champ de saisie, elle obtiendra la valeur. la même manière, je vais imprimer la fonction HFil value type print gebfel point getValue, et elle va obtenir la valeur et elle va obtenir Après avoir défini ce fichier, si j'exécute ce code dans mon terminal et que je remplis ce champ de saisie, nommez-en un et 29 ans. Soumettez ensuite ce bouton, vous pouvez voir le résultat dans mon terminal, nommé H 29. Voici un exemple de champ de saisie personnalisé. Ici, nous créons ensemble l'étiquette et le champ de saisie. Nous en créons une classe et en utilisant cette classe, nous créons au total deux champs de nom d'objet et Hfeld la même manière, vous pouvez créer autant que vous le souhaitez. C'est à vous de décider. Il n'est pas nécessaire de saisir le même code encore et encore. C'est donc l'avantage d'utiliser la classe. Merci donc d'avoir regardé cette vidéo, restez connectés pour notre prochain tutoriel. 46. Conversion Python GUI en EXE: C'est la partie la plus importante de ce didacticiel car dans ce didacticiel, nous allons apprendre à convertir notre fichier Python en fichier X. Imaginez que vous créez une excellente application d' interface graphique en Python. Peut-être s'agit-il d'une calculatrice, éditeur de texte ou d'un jeu, et maintenant c'est le gros problème. Comment partagez-vous le fichier avec d'autres personnes ? Qui ne connaît pas Python et ne l'installe même pas sur son ordinateur ? Ensuite, comment il peut utiliser l' application GI que vous créez. Dans ce tutoriel, nous allons apprendre comment convertir le programme Python en fichier exécutable à l' aide d'un programme d'installation du module Pi. En transformant votre code en exécutable, votre code devient portable. Également professionnel et convivial. Tout le monde peut double-cliquer dessus et exécuter le programme sans se soucier de la dépendance de l'installation et de la version de Python. L'utilisateur a besoin de commodité, et aujourd'hui nous allons apprendre comment nous pouvons l'offrir. Commençons par l'aspect pratique et passons à l'écran de l' ordinateur. Comme vous pouvez le voir côte à côte, j'ouvre mon Windows Power Shell et mon répertoire de travail actuel. Et dans mon répertoire de travail actuel, nous avons un fichier Python, et je vais convertir ce fichier Python en Axifle Lors de notre premier clic, nous devons installer un module. Nous allons utiliser l'installateur Pi pour convertir ce fichier Python en fichier EX. Ici, je vais taper Pep Install Pi Installer. Ensuite, vous devez appuyer sur le bouton Enter. Comme vous pouvez le constater, l'exigence est déjà satisfaite car je télécharge déjà ce module, mais vous devez terminer le processus de téléchargement. Ensuite, vous devez utiliser la commande CD. Ici, je vais taper CD, C, D. Ensuite, nous devons fournir un espace, et je vais copier l'emplacement exact de ce dossier. Je copie le chemin du dossier. Et ici, je vais passer le chemin du dossier. Après cela, pour ouvrir le dossier, GI à EXE, il faut passer quatre barres obliques, et je vais appuyer sur Entrée Nous sommes maintenant dans ce dossier, ce dossier en particulier, et maintenant je vais convertir ce fichier point Pi principal en un seul fichier de distribution. Pour cela, ici, je vais taper Pi installer, Pi installer. Pi Installer, Space Dash Dash et je veux en faire un seul fichier, un seul fichier. Ensuite, je vais fournir un espace et nous devons transmettre le beau nom main point pi. Si j'appuie sur Entrée, il va le convertir en fichier EX, mais il y a un problème. Le problème est que chaque fois que nous ouvrons notre fichier EXE, il ouvre le terminal. Laisse-moi te montrer. Je vais convertir ce fichier Minded Pi en un fichier de distribution Sooty, Enter Comme vous pouvez le voir, le traitement commence. Et maintenant, vous pouvez voir que dans mon répertoire de travail actuel, il crée un dossier, dossier we, un dossier de distribution et un fichier. Cela fonctionne toujours. Nous devons attendre un certain temps pour terminer le processus. Laisse-moi te montrer. Enfin, il complète le processus. Et si j'ouvre le fichier de distribution avec ce fichier, maintenant vous pouvez voir notre application, nous la convertissons avec succès en fichier eXFLE Si j'essaie d'ouvrir ce fichier, comme vous pouvez le voir, il s'exécute directement. Mais le problème est qu'il a ouvert le terminal, mais je n'en veux pas. Je ne veux pas ouvrir le terminal lorsque j'exécute ce fichier EXE. Pour résoudre le problème, nous ne devons utiliser aucune commande de console. Permettez-moi de vous montrer, à quelqu'un qui l' a fait avec cette console, que je vais également supprimer tous les fichiers tels que le fichier Wheel, le fichier distribution et le MinSpaxFle Pour résoudre le problème de console, nous tapons « nous devons ajouter cette commande ». Par installateur, un seul fichier, alors nous devons taper no console, et aterspace, nous devons passer notre nom de fichier main point pi Ensuite, je vais appuyer sur Entrée. Appuyez sur Entrée, comme vous pouvez le voir, cela commence à fonctionner. Nous devons attendre un certain temps pour terminer le processus. Comme vous pouvez le constater, terminez le processus. Maintenant, si j'ouvre mon dossier de distribution et que je clique sur ce fichier EX, comme vous pouvez le voir, maintenant sans ouvrir la console, cela ouvre directement l'application. Vous pouvez désormais partager votre candidature n'importe qui sans hésiter. Désormais, n'importe qui ouvre facilement cette application sans ouvrir la console. C'est notre application de liste de tâches et maintenant je veux attribuer une icône à notre application dans notre fichier EXE. Par défaut, cette icône est attribuée. Cette icône de fichier. Maintenant, je veux attribuer quelque chose en rapport avec cette application. Comme vous pouvez le voir, je suis dans mon navigateur et je recherche ici un fichier d' icônes à télécharger. Il fournira plusieurs sites Web fournissant des icônes, des fichiers point CO. Ici, je vais ouvrir le premier site Web, celui-ci. Ensuite, je vais passer au mode plus section C. Et ici, je vais chercher un fichier. Je souhaite télécharger l'icône du fichier. À partir de là, vous pouvez sélectionner n'importe lequel d'entre eux. Au lieu d'utiliser une icône de fichier, vous pouvez utiliser n'importe quelle icône, telle qu'une calculatrice. Que quelqu'un cherche une calculatrice. Je vais chercher une calculatrice et je vais télécharger cette icône sinon cette icône. J'aimerais choisir celui-ci. Je sélectionne celui-ci. Après avoir sélectionné celui-ci, je vais sélectionner Pity et je veux sélectionner l'icône. Ensuite, je vais sélectionner la résolution. Et n'oubliez pas que vous devez sélectionner le niveau le plus bas possible. Je vais utiliser celui-ci de 132 pixels sur 32 pixels, celui-ci, et je vais cliquer sur le bouton Télécharger l'ICO. Téléchargez ICO. Votre fichier sera automatiquement téléchargé dans le dossier de téléchargement. Si j'ouvre ce dossier ici, vous pouvez voir l'icône. Je vais couper cette icône de ce dossier et la mettre dans mon répertoire de travail actuel, celui-ci. Je vais également renommer cette icône. Je vais y arriver. Je vais l' appeler app A, double P. Maintenant, si je vous montre l' extension de ce fichier, vous pouvez voir qu'il s'agit d'un fichier CO app.co et c' est ce dont nous avons besoin Je vais maintenant exécuter la commande Bash, qui va assigner l' icône à notre fichier EX Dans un premier temps, nous devons ouvrir le répertoire de travail actuel dans mon Windows Powershell Vous pouvez le faire par commande cd, mais ici je vais faire l'éloge commande expédiée, puis dans le dossier, je vais faire l'éloge de right kick et ici vous pouvez voir une option pour ouvrir une fenêtre Powershell ici Si je clique dessus, il va directement ouvrir directement ouvrir le Windows Power Sell dans ce dossier, puis je vais taper mon code. Maintenant, nous devons taper la commande Bash qui va convertir le fichier Python en A Ex Je vais également attribuer cette icône à cette application. Pour cela, nous devons taper ici Pi installer, Pi installer. Après avoir tapé le programme d'installation de Pi , nous devons fournir, nous devons définir que je veux en faire un fichier, un fichier. Après cela, je ne veux pas ouvrir la console, alors je tape dash dash, no console. Ensuite, je vais taper dash, je vais attribuer l'icône pour attribuer l'icône, taper icône, icône égale à icône égale à l' application ou nom de l'icône app point Cofile puis enfin, nous devons transmettre le fichier Python, notre nom de fichier Python est point principal Pi Après cela, si je clique sur Anchor, comme vous pouvez le voir, cela commence à fonctionner. Et nous devons attendre un certain temps pour terminer le processus. Comme vous pouvez le constater, le processus est terminé avec succès. Maintenant, si j'ouvre mon dossier de distribution et que vous pouvez voir dans notre application dans notre application EXE, l'icône a été attribuée. Maintenant, notre application semble beaucoup plus authentique que précédente car nous attribuons ici une icône à cette application. Maintenant, si je clique sur cette application, comme vous pouvez le voir, elle n'ouvre aucune console et ouvre directement notre liste de tâches d' application. Dans ce tutoriel, j' essaie simplement de vous montrer comment nous pouvons attribuer une icône dans notre application. Nous apprenons ici comment attribuer une icône à notre application. 47. Projet 1 : Application de to-do list: Bienvenue donc sur notre premier projet lié à l'interface graphique Kin tart. Et aujourd'hui, dans ce projet, nous allons créer une liste de choses à faire, une simple liste de choses à faire Voyons donc la démonstration de la façon dont nos Tudlis vont fonctionner Comme vous pouvez le voir, ici j'ai ouvert mon application, et voici à quoi ressemble notre application. Nous avons d'abord un champ de saisie, puis nous avons un bouton Tâche, puis un bouton Supprimer la tâche. Ensuite, pour afficher l' élément de liste, nous avons une zone de liste. Et dans cette zone de liste, nous allons afficher tous les éléments de la liste un par un. Dans cette zone de liste, nous pouvons ajouter les éléments de la liste. Nous pouvons également supprimer les éléments de la liste à l'aide de ce bouton. Dans un premier temps, je vais ajouter un élément de liste. La première tâche que je vais ajouter à cette liste est le nettoyage. Donc, si je tape « nettoyage » et que je clique sur le bouton Tusk, comme vous pouvez le voir, la tâche est ajoutée à notre liste De la même manière, je vais ajouter deux autres tâches. Après le nettoyage, je vais ajouter du linge. Donc, pour taper, je vais ajouter la tâche dans notre liste ToDoList. Ensuite, dans ma liste Todo, je vais ajouter les courses, et je vais appuyer sur le bouton Tusk pour ajouter la tâche à notre Maintenant, dans notre liste Turo, nous ajoutons trois articles au total Maintenant, si vous voulez supprimer l'un des articles de cette liste d'épicerie, je vais supprimer le linge. Je sélectionne le linge et j'appuie sur le bouton Supprimer la tâche. Après avoir appuyé sur Supprimer la tâche, comme vous pouvez le voir, l'élément a été supprimé de la zone de liste. C'est un projet très simple et idéal pour démarrer le développement d'une interface graphique avec Python Kinder Ici, nous allons apprendre comment extraire des données dans le champ de saisie, comment traiter les données, comment nous pouvons supprimer les données, comment nous pouvons afficher les données dans notre boîte de décalage, etc. Sans perdre votre temps, passons à l'aspect pratique. Comme vous pouvez le voir, nous sommes dans éditeur de code de mon studio Visa et je crée un fichier Python main point pi. Dans un premier temps, je vais importer le module TK, tapez Import Kinar en tant que TK Ensuite, je vais importer un autre module. Nous devons importer des boîtes de masse depuis Kiner. Pour cela, je vais taper à partir de la zone Kiner import Masses. Ensuite, je vais créer la fenêtre principale. Je tape root égal à la classe Tik point T. Maintenez la touche Créez un objet en utilisant la classe Tk pour créer la fenêtre principale. Ensuite, je vais ajouter un titre. Je tape donc le titre root point to do list. De plus, je vais définir la géométrie, et je vais définir la géométrie du point racine 400 x 400. C'est une boîte carrée. Ensuite, je vais créer une entrée. Ce qui va prendre en compte les informations de l'utilisateur. Pour cela, je vais définir une entrée variable, entrée égale à entrée pot. À l'intérieur de la presse ronde, nous la plaçons dans une fenêtre racine. Ensuite, nous avons défini avec 30 pixels. Après cela, nous devons emballer ce champ de saisie. Je tape donc entry Doc back method, et ici j'ajoute un peu de rembourrage à YxS et j'attribue un rembourrage de dix pixels Après cela, nous devons définir deux boutons. Tout d'abord pour définir le bouton Ajouter , puis pour définir le bouton Supprimer. Je vais définir une variable appelée bouton d'ajout. Ajouter un bouton égal à un bouton à points. Ici, j'utilise la vitre à boutons du module TK. Ensuite, dans de tels tours, nous plaçons le bouton dans une fenêtre racine et notre bouton prend Ts et notre bouton prend es add tusk. Nous définissons et ici nous définissons W pour ce bouton, 15 pixels Ensuite, nous devons emballer ce bouton. Tie add button point PAC MTO, je vais ajouter un coussin de rembourrage sur De la même manière, je vais définir un autre bouton. Ici, je vais définir le bouton de suppression. Donc, pour taper, supprimer un bouton de soulignement égal à Button Glass, nous le plaçons dans une fenêtre racine et notre bouton prend cette tâche de suppression, et nous lui attribuons 15 pixels Ensuite, j'emballe ce bouton, donc je tape, supprime le bouton point, méthode PAC. Pack Dans le processus du tour, je vais ajouter un pad, Y, cinq pixels. Je vais définir ce fichier et pour afficher l' élément de liste dans une liste de visites, nous devons créer une zone de liste. Je vais définir une autre variable avec moins de cases. List box égale à hear, nous devons utiliser la méthode List box. Je tape TDT List box. Nous le plaçons ici dans une fenêtre racine et nous définissons la largeur 50 et la hauteur 15, notre mode de sélection est Tick Dot Singer. N'oubliez pas que le mode de sélection permet de sélectionner une seule tâche à la fois. Vous ne pouvez sélectionner qu'une seule tâche à la fois dans la case minimale. Après cela, je vais emballer cette liste. Type I, méthode East Box Dot Pack. Chemin à l'intérieur des robes rondes, je vais ajouter une paire de Pat dix pixels de x et je vais définir cela après avoir défini ce fichier, je vais ajouter la boucle principale car nous n' ajoutons pas la boucle principale Sans la boucle principale, ça ne marchera pas. C'est une boucle d'événements Kiner. Je tape root point main loop, et je vais définir ce fichier. Fondamentalement, cette boucle maintient la fenêtre ouverte et réactive jusqu'à ce que l'utilisateur la ferme. Après avoir défini ce fichier, si j'exécute ce code dans mon terminal, voici à quoi ressemblera notre liste Turo Nous avions le champ de saisie dans lequel nous allons placer notre tâche. Nous avons le bouton Atax et le bouton Supprimer la tâche. Maintenant, si j'essaie de faire des devoirs et d'ajouter la tâche à cette liste, cela ne marchera pas car nous ne créons pas la fonction pour ces devoirs et d'ajouter la tâche à cette liste, cela ne marchera pas car boutons. Nous devons créer une fonction pour le bouton Sur la tâche, indiquer également la fonction pour le bouton Supprimer la tâche. Découvrons les fonctions. Je traverse mon terminal et je reviens au code. Dans un premier temps, je vais définir une fonction appelée at task. Je tape DF à la tâche. Ensuite, dans cette fonction, nous devons d'abord obtenir la valeur de ce champ de saisie. Je souhaite configurer ce flux d'entrée. Quel que soit le type d'utilisateur dans ce champ de saisie, nous devons l'obtenir. Pour cela, je vais définir une variable et notre variable m est task, donc égale à la méthode Gate par point d'entrée. En utilisant cette méthode, nous pouvons obtenir la valeur. Nous devons maintenant définir une condition IP. Tâche HNotyeTask EP, différente de la valeur vide. Ensuite, dans cette condition IP, je souhaite mettre des données dans cette zone de liste. Pour cela, nous devons utiliser la méthode d'insertion. Tapez donc list box dot insert. Si notre interférence n'est pas vide, dans ce cas, elle ajoutera l' élément de liste à cette zone de liste. Comme vous pouvez le voir, à l'intérieur, nous utilisons au total deux paramètres t point. Grâce à cela, nous pouvons ajouter l' élément en fin de liste. Donc, quoi que nous adoptions, cela ajoutera la fin de la liste. Donc, s'il y a des données existantes dans notre zone de liste, les nouvelles données seront ajoutées à la fin de la liste. Ensuite, nous passons la tâche, la tâche exacte que nous obtenons du champ de saisie. Maintenant, une fois que j'ai ajouté la tâche avec succès, nous devons effacer l'entfelt. Pour cela, nous devons supprimer la méthode. Donc, veuillez supprimer le point d'entrée, et je vais tout supprimer. Je passe donc du point 02p. Ensuite, et gérez également le ou. Dans nos parties s de notre bloc Le, je veux afficher pour un message. Donc, à partir de la boîte de message, de la boîte de message, je veux afficher l'avertissement. Afficher l'avertissement à l'intérieur des presses rondes, à l'intérieur des ports doubles, je vais taper un avertissement. Ensuite, une virgule ou un nom de fenêtre est un avertissement, puis une virgule et là, je vais taper , saisir une tâche, et je vais définir ce fichier Maintenant, après avoir créé la fonction de tâche adt, nous devons appeler la fonction dans notre bouton en utilisant le paramètre de commande. Laisse-moi te montrer. Dans notre bouton publicitaire ici, après la virgule, je vais taper commande, commande, et je vais passer le nom de la fonction à la tâche Je vais configurer ce fichier. Après avoir défini ce fichier, si j'exécute ce code dans mon terminal et que j'essaie d'ajouter une tâche, supposons des devoirs, des devoirs et que j'appuie sur le bouton Tâche, comme vous pouvez le voir, cela ajoute la tâche dans notre zone de liste. En outre, il a effacé le champ de saisie. De la même manière, je vais ajouter une autre tâche. Ensuite, je vais ajouter une autre tâche, comme manger d'abord des freins sains. Ensuite, je vais ajouter la tâche à notre liste de tâches. Après avoir appuyé sur le bouton Ajouter sur le bouton Tâche, il est ajouté à notre liste de tâches. Maintenant, je veux supprimer l'une des tâches de cette tâche pour faire le moins possible. Après avoir sélectionné la tâche dans la liste déroulante, je souhaite la supprimer. Si j'appuie sur le bouton Supprimer, cela ne le supprimera pas. Nous devons créer une fonction qui supprimera l'élément de la liste. Définissons une autre fonction, supprimez la tâche. Donc, en dessous de la méthode at task, je vais taper Dave delete task. Ensuite, dans cette méthode de suppression de tâches je vais utiliser try and ext block. Essayez de gérer parfaitement l' erreur. Essayez dans le bloc Try. Ici, je vais définir une variable appelée tâche sélectionnée, tâche sélectionnée égale à listbox point car selection La méthode de sélection des voitures, écrite sous la forme d'une liste d'index sélectionnés Si vous souhaitez sélectionner plusieurs articles à l'avance, oui, vous le pouvez. Cela va en créer une copie, puis nous devons le supprimer Ici, je vais taper listbox point Delete method, et à l'intérieur de celle-ci, je vais transmettre le tuple de tâches sélectionné Et si vous ne sélectionnez rien sur lequel vous appuyez, mais que vous appuyez sur le bouton de suppression, dans ce cas, nous devons afficher un message d'erreur. Donc, dans notre bloc d' exception, sauf à l'intérieur de ce bloc, je souhaite afficher un message d'avertissement. Parfois, la boîte de message n'affiche pas d'avertissement. Et notre fenêtre est un avertissement et notre message d'avertissement est, veuillez sélectionner une tâche à supprimer Je vais configurer ce fichier. Maintenant, après avoir créé la méthode, supprimer la tâche, nous devons appeler la méthode dans notre bouton, bouton Supprimer. Je copie le nom de la méthode, et ici, je vais utiliser le paramètre de commande. À la virgule, je vais taper commande, option de commande. Commande égale à notre fonction delete task, et je vais la satisfaire. Maintenant, pour m'en assurer, je vais exécuter ce code dans mon terminal, et voici notre liste de choses à faire. Dans un premier temps, je vais ajouter une tâche à cette liste d'outils. Notre première tâche est de vous réveiller et de faire votre lit. J'ajoute la tâche à cette liste de tâches, et comme vous pouvez le voir, mettre à jour les éloges sur le bouton, cela efface notre interfiel Maintenant, notre champ intermédiaire est que si je fais à nouveau l'éloge du bouton Tâche, vous pouvez voir ici un message d'avertissement Entrez une tâche. Nous ne pouvons donc pas le laisser dans le noir. Ensuite, je vais ajouter une autre tâche, EKLD breakfast, et je vais ajouter la tâche Ensuite, je souhaite supprimer l'une des tâches de cette liste, comme se réveiller et faire son lit. Après avoir sélectionné la tâche, si je clique sur le bouton Supprimer la tâche, comme vous pouvez le voir, supprimez la tâche de la liste des tâches. J'espère que vous comprenez maintenant comment créer une liste de tâches de base. C'est notre premier exercice, je le simplifie donc très simplement. Dans nos prochains tutoriels, nous allons faire beaucoup de choses. Merci d'avoir visionné ce programme de vidéos pour notre prochain tutoriel 48. Enregistrer définitivement les données avec JSON: Il s'agit donc de la deuxième partie et de la partie avancée de ce didacticiel. Et dans cette section, nous allons apprendre comment enregistrer données de notre liste de tuteurs de façon permanente à l' aide de JSM car vous pouvez voir Hero ouvrir mon application précédente, et notre application, ne pas enregistrer les données Si j'ajoute les données dans notre liste, si je supprime l'application, sinon je la tue, et si je réexécute mon application, maintenant notre application devient un œuf vide, nous devons enregistrer les données Nous devons enregistrer les données de façon permanente dans notre zone de liste. Maintenant, je vais vous montrer une autre application. Il s'agit de la version mise à jour de cette application dans laquelle nous sauvegardons les données façon permanente avec l'aide de Jason. Notation d'objets JavaScript. Maintenant, si je tue cette application, sinon, supprimez le terminal, sinon supprimez le terminal, puis réexécutez ce code. Permettez-moi de vous montrer que, comme vous pouvez le voir, nous avons toujours les données dans notre liste. Je ne supprime pas définitivement les données. C'est ce que nous allons construire aujourd'hui dans ce projet. En gros, nous allons mettre à jour notre projet existant, commençons. Comme vous pouvez le voir, nous sommes dans l'éditeur de code de mon studio utilisateur et j'ai ouvert mon précédent fichier Python main point Pi. Dans ce fichier, nous créons ToDoList à l'aide Kiner et nous devons maintenant enregistrer définitivement notre valeur ToDoList Pour cela, nous allons utiliser la notation d'objet JavaScript JSN Maintenant, je vais d'abord importer JSN. Ici, je vais taper import JSN. Après cela, je vais importer le module OS, donc je vais taper import Os. Pour enregistrer et charger la tâche, nous allons utiliser JSNFV Je vais créer un JSNFive avec JSNetExtension. Dans mon répertoire de travail actuel, je vais taper task point JSON. Pour l'instant, il est complètement vide. Après cela, je vais charger ce fichier JSNFle dans une variable. Pour cela, je vais définir une variable et/ou notre variable est un fichier de données, un fichier soulignement de données égal au point de tâche JSON Nous devons maintenant créer un total de deux fonctions pour enregistrer les données JSN et charger les données Jasn. Dans un premier temps, je vais créer comment enregistrer les données JSN dans notre boîte la plus petite. Je tiens à dire que nous devons enregistrer la tâche actuelle de la zone de liste dans JSNFive Pour cela, je vais définir une fonction. Ici, je vais définir une fonction et nom de notre fonction est Dave save task. Ensuite, dans cette fonction, je vais récupérer tous les objets de la A dans la case est sous forme de ruban. Pour cela, je vais définir une variable et le nom de notre variable est task, task égale à as box point gate method. Ensuite, à l'intérieur des rondelles, nous sélectionnons ici tous les éléments de la liste, tous les éléments les moins encadrés Ensuite, nous devons ouvrir ce fichier JSNFle que j'ai stocké dans un fichier de données Pour cela, je vais utiliser la méthode ouverte. W ouvre à l'intérieur des roulettes Je vais transmettre le fichier de données, et je veux l' ouvrir en mode écriture Mode, tapez W car je vais créer un pointeur de fichier qui est un singe. Ensuite, dans ce fichier, je souhaite utiliser la méthode DAP Je suis de type JEnt Dung. Ensuite, dans les versets d'exécution, je vais fournir la tâche, et je veux écrire la tâche dans notre pointeur de fichier A, A, puis apacma, je vais taper Indian Indian Four Maintenant, la question est de savoir pourquoi nous utilisons IndianTF ? Indien égal à quatre. Parce que lors enregistrement de données dans un fichier JSN, Python peut tout écrire sur une seule ligne C'est très difficile à lire. Donc, pour en faire un format lisible par l'homme, nous utilisons Indiant Four Il indique à Python de formater le JSN avec une indentation de quatre espaces par étiquette. C'est à vous de décider si vous pouvez l'utiliser ou non. Mais si vous l'utilisez, vous pouvez facilement lire les données à partir du fichier JSNFle Ainsi, après avoir obtenu la valeur de la moindre case, nous l'enregistrons dans un fichier JSNFle Je vais maintenant appeler cette fonction. Je copie donc le nom de la fonction Saffle, et je vais l'appeler lorsque j'utiliserai AdTask Après cela, je vais appeler cette méthode, Enregistrer la tâche. Et je vais configurer ce fichier. Ainsi, chaque fois que nous appuyons sur le bouton Ajouter, ce bouton, le bouton Ajouter, la commande passe à la méthode de la tâche, cette fonction, à la tâche. Et comme vous pouvez le voir dans notre méthode de tâche at, comment nous appelons la méthode de tâche sep. Et cette méthode va définir les données dans ce fichier Jason. Alors faisons grève. Mais avant exécuter ce code dans mon terminal, je vais vous montrer le fichier GSN à points Tas Pour l'instant, comme vous pouvez le constater, il s'agit d'un fichier vide. Maintenant, exécutons le code. Et ici, je vais ajouter une tâche. Notre tâche consiste donc à faire nos devoirs. Je vais appuyer sur le bouton Tâche. Après avoir appuyé sur le bouton, comme vous pouvez le voir, la tâche est ajoutée dans ma zone de liste. Maintenant, si je vous montre mon TSDTJSNFle, laissez-moi vous montrer alors je vais fermer Je ferme cette fenêtre et je ferme ce programme. Maintenant, si je reviens au point de tâche JSNFle, vous pouvez voir le résultat ici Il enregistre les données dans nos devoirs JSNFle. Maintenant, si je passe à mon code et que je le réexécute, vous ne pouvez rien voir ici parce que nous venons de définir le fichier Nous ne chargeons pas à nouveau le fichier dans notre zone de liste. Nous devons maintenant créer une autre fonction qui chargera à nouveau le fichier dans notre zone de liste. Revenons-en au code. Je vais maintenant définir une autre fonction appelée Load task, type Sumar, Dave, load task à l'intérieur de la fonction cette fonction, si le chemin du fichier existe, je veux dire si les fichiers JSON existent dans notre type de répertoire, si s point p point existe, fichier de données, alors dans cette condition IP, je veux ouvrir ce fichier pour ouvrir ce fichier, ici je tape avec ouvrir avec ouvert, puis dans les presses rondes, ici j'ouvre le fichier de données et j'ouvre ce fichier en mode lecture car AF est un fichier pointeur. Ensuite, dans le capot ouvert de Math, puis dans ce fichier, je veux utiliser le blog try and except. Essayez-le et essayez dans le trib doc help de définir une variable appelée task Tâche égale à, je souhaite charger la tâche Soong type Json ad method Chargez, dans le cadre du processus circulaire, je vais passer le pointeur de fichier F. Ensuite, je vais exécuter une tâche de suivi pour messagerie instantanée pour la tâche d'itération dans cette boucle d'automne, puis je veux insérer l' élément dans la case la plus petite Tapez donc en tant que boîte, en tant que méthode d'insertion de points Box. Insérer. Ensuite, à l'intérieur des bus ronds, je veux ajouter le moins d' éléments à la fin de la liste. Je tape P point Mathub coma et je souhaite ajouter l'article. Comme vous pouvez le voir, elle a saisi une mauvaise orthographe, pas dans l'élément TM items. Je vais configurer ce fichier. Ensuite, dans ce bloc tri, je vais d' abord charger le fichier JSNFle Pour cela, je vais définir une variable appelée tâche, tâche égale à la méthode de chargement JSON. Charger. Dans le Rundbas, je vais transmettre le fichier A. Ensuite, je vais exécuter une boucle à quatre boucles, un type pour une tâche, une tâche Ensuite, à l'intérieur de ces quatre boucles, je veux insérer la tâche. Je souhaite insérer la tâche dans la zone de liste. Pour cela, je vais taper la méthode d'insertion de points dans la zone de liste. Insérer. À l' intérieur des accolades, je vais taper TK point d. Je veux ajouter la fin de la tâche dans cette zone de liste, puis je vais transmettre la tâche elle-même Après avoir ouvert le fichier, il va essayer ce code. Après cela, après cela, dans notre condition d'exception, sauf erreur de décodeur Jason point Jason, puis dans ce bloc, je veux taper pass Maintenant, la question est de savoir quand est-ce qu'il va lancer une flèche ? Lorsque notre fichier est complètement vide, il lance une flèche. Quand il va générer une erreur, je la tape pass, cela signifie qu'il ne va pas générer de message d' erreur, vais juste sauter cette partie. Je tape un seul dossier vide en commentaire, et je vais définir ce fichier. Maintenant, je vais appeler la fonction load task, copier le nom de la fonction load task, et je vais l'appeler avant la boucle principale à cette position. Nous devons donc appeler la fonction Set task dans notre méthode de suppression, méthode de suppression de tâche. Donc, après avoir supprimé la tâche, nous devons également définir la tâche dans notre fichier SN. Je vais configurer ce fichier. Après avoir défini ce fichier, si j'exécute ce code dans mon terminal, vous pouvez maintenant voir après avoir exécuté ce code dans notre terminal, maintenant vous pouvez voir comment il entraîne la tâche existante à partir du fichier GSN Si j'ajoute une nouvelle tâche, supposons de la musique, que j'ajoute la tâche et que je ferme l'application, après avoir fermé l'application, si je réexécute ce code, vous pouvez maintenant remarquer qu'il ne supprime pas définitivement notre tâche Je ne supprime pas définitivement notre tâche. J'enregistre toutes les tâches dans un fichier JSN dans ce fichier. Avec l'aide de JSN, nous sommes aidés avec succès à enregistrer les données pour notre radiation J'espère que c'est maintenant clair pour vous, merci d'avoir regardé cette vidéo, restez connectés pour notre prochain projet. 49. Projet 2 : Calculatrice simple: Bonjour, les gars, c'est bon de vous revoir. Encore une fois, je suis de retour avec un nouveau projet, et aujourd'hui, dans ce projet, nous allons créer une calculatrice GI simple avec Kiner qui effectue des opérations arithmétiques de base telles que l'addition, la soustraction, la multiplication Comme vous pouvez le voir, nous avons des boutons numériques de 0 à 9, puis nous avons une option claire, évaluez également avec une expression Testons le calculateur. Cela fonctionne-t-il correctement ou non ? Je vais taper trois, deux, et je vais multiplier par 52. Et si je loue égal à sinus, comme vous pouvez le voir, le résultat est écrit. Sur ce, je veux -356. Ensuite, si je loue la valeur égale à sinus, le résultat est écrit. Et si je le divise par trois, puis appuyez sur égal pour voir le résultat écrit. Maintenant, si vous voulez effacer le champ de saisie, vous suffit de faire l'éloge ce bouton et il effacera le champ de saisie. C'est un calculateur de symboles de base. Voyons comment créer ce calculateur de symboles. Commençons le codage. Enfin, nous sommes dans mon éditeur de code Visual Studio. Dans un premier temps, je vais importer le module Kiner. Ici, je vais importer Kiner en tant que TK. Après cela, je vais définir je vais définir la fenêtre racine. Je vais taper root égal à t point Tlass. Ensuite, je vais définir le titre. Je lie le titre à la racine et c'est une simple calculatrice. Enfin, je vais définir la géométrie. Tapez donc la géométrie du point racine, 300 x 400. Enfin, je vais démarrer la boucle principale, la boucle principale root point. Maintenant, dans un premier temps, je vais définir une chaîne vide. Tapez donc des expressions égales à une chaîne vide. Cette chaîne vide va contenir les expressions mathématiques, puis je vais créer une variable d'entrée pour stocker la valeur du champ de saisie. Donc, attachez le trait de soulignement EntryWaEntry, où, entryware égal à TK, point, chaîne, variable, fil de chaîne Ensuite, je vais créer un champ de saisie. Tapez donc notre entrée de variable égale à la méthode d' entrée t, à la classe d'entrée tit, et nous la plaçons dans une fenêtre racine et nous attribuons ici une variable de texte égale à l'entrée, nous définissons la zone de police et la taille de police à 20, ici nous alignons notre texte sur le côté droit Je tape « justifier correctement ». Justifiez correctement, alignez le texte vers la droite, comme avec une calculatrice normale. Ensuite, nous devons emballer ce champ de saisie. Je vais taper Entry Dot Pack, me sentir sur un pied d'égalité avec les deux et Hero utilise un rembourrage interne en direction des SS, Ipadx puis nous utilisons Maintenant, pour les boutons de la calculatrice, nous devons prendre un, nous devons prendre un cadre de boutons. Ici, je vais taper un cadre de bouton égal à un cadre à points à cocher et nous plaçons le cadre dans une fenêtre racine, puis j'emballe cette variable de cadre de bouton. Maintenant, à l'intérieur de ce cadre de boutons, nous allons mettre tous les boutons. Par exemple 0-9, bouton homologue, sinusoïdal égal à deux plus le signe de multiplication sinusoïdal divisé , etc., pour définir les boutons, ici, je vais utiliser une liste imbriquée Je vais définir un bouton variable. Ensuite, à l'intérieur du carré, je vais utiliser les valeurs des boutons imbriqués Dans notre première ligne, nous imprimons sept, huit, neuf et un sinus divisé. Ensuite, après la virgule, je vais passer une autre valeur imbriquée. Je souhaite transmettre une autre valeur de liste imbriquée. Ici, je vais mettre 456 étoiles et à la ligne suivante, je vais taper un, deux, trois et moins sinus. Dans notre dernière ligne, je vais taper dans cette liste, je vais passer zéro voiture égal à plus sinus. Il s'agit d'une structure de calcul de base. Il s'agit essentiellement d'une liste imbriquée qui définit la disposition des boutons ligne par ligne Maintenant, en utilisant cette liste, nous devons créer les boutons de manière dynamique. Pour cela, je vais utiliser un suiveur. Laissez-moi vous montrer comment faire. Ici, je vais attacher chaque ligne en boutons, puis à l'intérieur de la boucle d'automne, puis créer un nouveau cadre pour les lignes. Ici, je vais attacher le cadre, cadre égal à la classe de cadre à points du ticket, et à l'intérieur, je vais passer le cadre à boutons. Ici, nous avons placé notre nouveau cadre à l'intérieur du cadre à boutons. Ensuite, nous emballerons ce cadre. Donc, pour lier le paquet de points du cadre, étendez-le de manière égale à travers et remplissez les deux. Étalez et remplissez les deux, assurez-vous qu'ils s'étirent bien. Ensuite, nous devons examiner chacun des éléments de la liste. À l'intérieur de la liste, nous avons la ligne Op list. Et dans cette rangée, nous avons plusieurs éléments de liste. Nous devons donc examiner chacun des éléments de la liste. Pour cela, encore une fois, je vais utiliser quatre boucles. Je vais donc taper dans ces quatre boucles pour les boutons d'affilée, puis dans cette boucle pliante, puis je veux créer les boutons À l'aide de ce suivi, nous ciblons chacun des caractères et nous le stockons dans une variable de bouton. Ensuite, B est égal aux boutons Tk Dot et nous le plaçons dans une fenêtre cadre, et notre bouton prend exactement ce bouton. Et notre police est aérienne, la taille de police est de 18 et le relief est surélevé. Physiquement, cela donne un style de bordure en relief. Ensuite, nous avons dit « avec » et « hauteur ». Ensuite, je vais emballer ce bouton. Je vais donc lier la méthode du pack de points B et nous définirons le côté t. De plus, expand est vrai et fill est les deux. Ensuite, je vais attacher tout ce bouton avec la méthode de liaison. Pour cela, je vais taper B got bind method. Ensuite, à l'intérieur des robes rondes et d'abord à l'intérieur de la robe ronde, nous utilisons le bouton un événement Cela signifie le coup de pied du bouton gauche de la souris. Et une troisième fois, appuyez avec le bouton gauche de la souris sur les boutons pour appeler cette fonction méthode de clic. Nous devons définir la fonction, Kick. Je vais donc définir la variable. Donc, après avoir importé le module. Ici, je vais définir la fonction. Dave, clique sur l'événement de déshabillage. Pour l'instant, je vais taper pass, et je vais définir ce fichier. Après avoir défini ce fichier, si j'exécute ce code dans mon terminal, maintenant, notre structure ressemble à ça. C'est une belle calculatrice, structure de calculatrice simple, et c'est ce que nous voulons. Maintenant, nous devons gérer la fonction de gestion d'événements, cliquez sur. Dans un premier temps, nous devons obtenir la valeur exacte du bouton. Pour cela, je vais définir un texte variable. Texte égal au point Event Wizard Cgate À l'intérieur de la boucle, nous définissons le Nous voulons obtenir la valeur du texte. À partir de l'événement en question, supposons que si l'utilisateur en fait l'éloge, alors à partir de cet événement, nous allons extraire la valeur de l'assistant en utilisant Cgate, ici nous allons extraire la valeur du texte de l'étiquette Un texte à un niveau est donc un. Nous obtenons donc la valeur et la stockons dans cette variable. En gros, nous extrayons la valeur du bouton. même, si nous louons le signe plus, il obtiendra la valeur positive et la définira dans cette variable. Maintenant, souvenez-vous de cette expression variable, c'est une variable globale et c'est un flux vide. Nous devons l'utiliser dans la fonction. Pour cela, nous devons le rendre mondial. Sinon, notre fonction considère qu'il s'agit d'une variable locale. Donc ici, je vais taper global et notre variable am est expression. Nous en faisons une variable globale. Cette variable va stocker l'expression mathématique que l'utilisateur est en train de créer. Supposons deux plus quatre, 2/1, quelque chose comme ça Je vais maintenant définir une condition IP. Je veux dire que cs one tape A un texte égal à égal à l'intérieur des codes doubles, si nous faisons l'éloge du sinus égal dans la calculatrice, alors dans cette condition IP, je vais passer au tri bloc TRY try. Si l'utilisateur loue un sinus égal, supposons que l'utilisateur tape deux plus trois multiplié par quatre. Ensuite, l'utilisateur appuie sur le signe égal. Nous devons maintenant évaluer cette expression, l'expression sous forme de chaîne. Pour cela, nous devons utiliser une méthode appelée Eval, et je vais la stocker dans une variable, sous-type result, result égal à, et ici je vais utiliser la fonction Eval, yE val. Ensuite, dans les adresses rondes, je vais passer l' expression, cette variable. Nous passons donc ici l'expression exacte que nous tapons dans la calculatrice. Supposons que deux plus trois se multiplient par cinq, l'expression exacte, et je vais traiter cette expression avec la méthode El. Il va calculer l'expression, puis après avoir calculé cette expression, je veux convertir cette expression en flux. Je vais donc utiliser la méthode des larmes, THTR. Ensuite, je vais le mettre dans un cycle d'étude ss. Après avoir calculé la valeur, encore une fois, nous en faisons un flux. Ensuite, dans le champ de saisie de notre variable d'entrée, je vais définir la valeur. Pour cela, je vais taper entry point set method, et je vais définir le résultat, puis encore une fois, nous devons stocker à nouveau, vous devez stocker la valeur de cette expression pour que nous puissions la recalculer Donc, quelqu'un tape une expression égale au résultat. Je suppose que dans notre expression nous réussissons, nous passons deux plus deux plus quatre, notre résultat devient huit. Maintenant, il va imprimer les huit dans notre champ de saisie. Et encore une fois, cela va dépasser le chiffre huit dans notre expression pour que nous puissions utiliser ce nombre pour d'autres calculs. Supposons qu'avec huit, je veuille en ajouter cinq. Si nous tapons le signe plus et appuyons sur cinq, puis de nouveau, si nous appuyons sur le signe égal, huit plus cinq deviennent 13. Nous devons également gérer l'exception. Pour cela, je vais taper except exception en tant que E dans le bloc except. S'il n'y a pas de problème, je veux imprimer l'erreur, saisir l'erreur de jeu de points et notre exception devient vide. Ensuite, je veux que notre expression expression vide soit égale au noir et je vais définir ce cinq. Ensuite, pour ce qui est de l'état de nos lèvres, je vais définir un autre cas : un texte égal à C, je veux dire clair, puis à l'intérieur de cet état des lèvres, puis je veux effacer l'expression, expression égale au noir. De plus, je vais définir une valeur d'entrée, une entrée de type. Entrez un ensemble de points Méthode, Set, je vais le rendre à nouveau vide. De plus, dans notre sp, maintenant dans le sp, nous devons mettre à jour l' affichage des entrées avec une nouvelle expression. Nous devons également ajouter le texte du bouton à la chaîne d'expression Pour cela, je vais taper expression plus plus égal à grement avec du texte, variable de texte ici, je vais dire entrée EntryWare, underscoware, méthode d'ensemble de points d'entrée , S Je veux définir l'expression. C'est ça. Maintenant, pour tous les boutons tels que l'heure d'été à partir de 029 et opérateurs et tous les opérateurs tels que plus moins multiplication et division, il va ajouter le texte du bouton au flux d'expressions et mettre à jour l'affichage des entrées avec une nouvelle expression jour l'affichage des entrées avec une Donc, si je définis ce fichier et que j'exécute ce code dans mon terminal, voyons s'il est correctement ou non. Maintenant, si j'appuie sur sept ici et que je veux multiplier par neuf, alors si j'appuie sur le signe égal, comme vous pouvez le voir, il en résulte un reginly Maintenant, je veux effacer ce champ de saisie. Si j'appuie sur C, le champ de saisie sera effacé. Créons maintenant une autre expression. Je vais jouer à deux contre six. Ensuite, je vais multiplier par cinq. Il s'agit d'une nouvelle expression. Essayons maintenant de nous exprimer avec nos conditions. Quelle que soit l'expression que nous saisissons, elle sera évaluée. Il va évaluer l'expression et créer le résultat et il va créer le résultat lorsque vous faites l' éloge du sinus égal. Après avoir appuyé sur le sinus égal, il exécute ce code de bloc DRI et crée ce résultat Ensuite, après avoir créé ce résultat, il renverra le résultat à cette expression. Maintenant, c'est devenu une nouvelle expression. Si je multiplie par deux, encore une fois, cela devient une nouvelle expression et je passe à ceci et à ce bloc de résultats lorsque nous appuyons sur égal à chaque fois que nous appuyons sur C, cela effacera l'expression. Cela va à nouveau en faire une chaîne vide, et cela va également définir la variable d'entrée vide. Si j'appuie sur C, tout sera supprimé de ce champ de saisie. Ensuite, peu importe ce que nous obtenons dans notre travail sur Es, nous mettons à jour notre champ de saisie. C'est le calcul simple que nous devons faire pour cette calculatrice de base. J'espère que cela vous plaira. Merci d'avoir regardé cette vidéo, restez connectés pour notre prochain tutoriel. 50. Projet 3 : horloge numérique: Bonjour, les gars, c'est bon de vous revoir. Encore une fois, je suis de retour avec un nouveau projet, et aujourd'hui, dans ce projet, nous allons construire cette horloge numérique à l' aide du module T et de l'interface graphique Kinar Commençons par l'aspect pratique et voyons comment nous pouvons y parvenir. Enfin, nous sommes dans mon éditeur de code Visual Studio, et dans un premier temps, je vais importer Kinromduyiput Kinar Ensuite, je vais importer le module T car nous avons besoin d'un module de temps pour créer l'horloge numérique. Après cela, je vais taper root égal à DK point TLS, classe Tk Ensuite, je vais lui donner le titre Summertyp root point title, et notre titre est horloge numérique Je vais également définir la géométrie. Type Sumo, géométrie du point racine, 400 x 200 pixels Après cela, je vais ajouter de la couleur de fond à cette fenêtre racine. Donc, tapez, méthode de configuration par point racine, configuration, puis à l'intérieur des rondes, fond BG, égal à noir dans les doubles codes. Ici, j'utilise un fond de couleur noire. Ensuite, je vais exécuter la boucle principale, Solutt root, dark, main loop, et je vais définir ce fichier J'ai défini ce fichier, si j'exécute ce code dans mon terminal, voici à quoi ressemble notre fenêtre avec un fond de couleur noire. Maintenant, je vais créer une étiquette qui affichera notre heure actuelle. Pour cela, je vais définir une variable appelée label, label égal à PK label to label class Ensuite, dans l' adresse ronde, je vais passer, je vais mettre l'étiquette dans les fenêtres root et taper root Ensuite, je vais définir la police, la police, et je vais attribuer, et ici je vais attribuer la police aérienne, Aerial. Ensuite, je vais définir la taille de police. Je vais en faire 50. Je pense que 50 c'est bien pour ça. Ensuite, je vais utiliser le poids de police. Police jusqu'à huit, je veux une police en gras. Audacieux. Ensuite, je vais ajouter quatre ronds colorés, G. G représente quatre ronds. Quatre couleurs rondes, je vais utiliser la couleur King. C, Yan. Ensuite, je vais définir la couleur de fond, taper BG black. Alors je vais apposer cette étiquette. Tapez donc la méthode PAC label point. À l'intérieur des rondelles, je vais utiliser encore Property Anchor, et je vais le placer au centre et l' agrandir, l'étendre, je vais le concrétiser Je vais configurer ce fichier. Ensuite, je vais créer une fonction qui mettra continuellement à jour l'heure dans cette étiquette. Pour cela, je vais définir une fonction, Dave et le nom de notre fonction est mise à jour, heure de soulignement Heure de mise à jour puis dans la fonction, ici, je vais définir l' heure actuelle, l'heure actuelle du soulignement Nous devons extraire l'heure actuelle. Pour cela, l'heure actuelle étant égale à l'heure actuelle égale au point temporel du module temporel, je vais appeler la méthode ST RPT, TRT Ensuite, à l'intérieur des rondelles, nous devons passer le format Dans quel format je souhaite imprimer l'heure. Je veux utiliser le format 24 heures, donc attachez le sinus modulaire H, puis deux points. Puis un sinus modulaire, pendant une minute, puis deux points A, puis un sinus modulaire pendant une seconde. Je vais imprimer l' heure dans ce format. En gros, il va renvoyer une chaîne de temps. Après cela, je vais configurer cette fois sur cette étiquette. Pour cela, ici, je vais taper label label point config Method, config. Ensuite, lancez ici, je veux configurer la propriété text, texte égal à l'heure actuelle Ensuite, après avoir imprimé l'heure actuelle, nous devons continuellement mettre à jour l'heure actuelle. Pour cela, je vais taper label point après méthode. Point d'étiquette après. Ici, je vais utiliser 1 000 millisecondes. Je veux dire 1 seconde, et je vais mettre à jour l'heure. J'appelle cette fonction l'heure de mise à jour. À chaque seconde, l'heure sera continuellement mise à jour, et c'est ainsi que nous pouvons créer notre horloge numérique. Maintenant, avant de définir ce fichier, nous devons appeler l'heure de mise à jour de cette fonction. Je copie le nom de la fonction et je vais appeler cette fonction en dessous de la boucle principale. Et je vais configurer ce fichier. Après avoir défini ce fichier, si j' exécute ce code dans mon terminal, vous pouvez voir ici notre horloge numérique et elle met continuellement à jour l'heure. J'espère que vous comprenez maintenant comment créer une horloge numérique Il est très simple de créer une horloge numérique comme celle-ci. Merci d'avoir regardé cette vidéo Restez à l'affût de notre prochain projet. 51. Projet 4 : Convertisseur de devises: Bonjour, les gars. C'est bon de te revoir. Encore une fois, je suis de retour avec un nouveau projet aujourd'hui dans ce projet, nous allons construire ce convertisseur de devises. Comme vous pouvez le constater, si je passe un montant tel que 14, je sélectionne une devise. Supposons que je souhaite sélectionner USD. Ensuite, je veux convertir 14 USD en NR. Ensuite, si j'appuie sur le bouton Convertir, comme vous pouvez le voir, le montant est renvoyé en fonction du taux de conversion. De même, si nous sélectionnons l'euro si je convertit 14 euros en INR, cela renvoie le montant Ainsi, parmi les devises prédéfinies, vous pouvez sélectionner n'importe laquelle d'entre elles. Et vous pouvez renvoyer le résultat. Au lieu du nar, si vous souhaitez convertir l'euro du yen japonais en euro, vous pouvez voir le résultat. C'est ce que nous allons construire aujourd'hui. Sans perdre votre temps, passons à l'aspect pratique. Enfin, nous sommes dans mon éditeur de code Visual Studio. Dans un premier temps, je vais importer le module Kiner. Ici, je vais taper import Kinker en tant que TK. Avec cela, je souhaite importer des masses box et TTK. Ici, je tape depuis Kinkerimport, TK et mass box Ensuite, je vais créer la fenêtre Kinker. Je tape root égal à la classe Tt Tk. Ensuite, je vais attribuer un titre. Je tape root point title currency converter. Ensuite, je vais définir la géométrie, la géométrie du point racine du type somme, 400 x 250, et je vais exécuter la boucle principale, la boucle principale du point racine Sumtyp Ensuite, je vais définir un dictionnaire pour le taux de change fixe. Avant la fenêtre racine, ici, je vais taper le dictionnaire qu'elle a créé, et le nom de notre dictionnaire est taux de change. Dans ce dictionnaire, en fonction du dollar, nous fixons d'autres taux de change. Nous fixons d'autres taux de change, tels que notre première clé est dollar américain et notre première valeur est 1,0 dollar. Selon la valeur du dollar américain, si nous l'échangeons en euros, nous pouvons obtenir 0,92 euro De même, si nous le convertissons en INR, c'est-à-dire en roupie, nous pouvons obtenir 87,10 De même pour la livre sterling, nous obtenons 0,78 livre pour le yen japonais, nous pouvons en obtenir 146 Dans cet exemple, je n'utiliserai aucune API pour obtenir la valeur actuelle du taux de change. J'utilise les taux de change fixes. Maintenant, pour définir la géométrie, je vais créer une étiquette à points pk, et nous plaçons cette étiquette dans la fenêtre racine et le texte de notre étiquette est le montant, et la couleur de notre police est la zone et j'emballe cette étiquette Ensuite, je vais prendre un champ de saisie, un champ de saisie du montant, de la morve, le montant inscrit égal à l'entrée pkt Dans ce champ de saisie, nous allons mettre le montant, et nous plaçons ce champ de saisie dans la fenêtre racine et notre taille de police est de 12 pixels. Ensuite, je vais emballer ce champ de saisie. Je tape le point de saisie du montant PAC Mathod. Ensuite, nous devons créer une liste déroulante pour sélectionner la devise. Je tiens à dire que nous devons sélectionner notre première devise. Supposons que si vous souhaitez convertir des USD en INR, vous devez d' abord sélectionner le dollar américain Ensuite, vous devez d'abord sélectionner le dollar américain. Pour cela, à partir de cette liste, de ce dictionnaire, nous devons sélectionner la clé en question. Je vais d'abord créer une étiquette pour cette étiquette de ticket. Le texte de notre étiquette provient de la devise, et je balise cette étiquette. Ensuite, nous devons créer une zone de liste déroulante. Je vais définir une variable à partir du combo Undersco. À partir d'une combinaison de soulignement égale à TK, j'utilise ici le module TK, la boîte à options TTlasst. Ensuite, dans la citation, je vais la placer dans une racine de fenêtre racine et maintenant, pour les valeurs ici, nous allons utiliser ce dictionnaire. En gros, ici, nous devons afficher toutes les clés des valeurs telles que USD, EUR, INR, GBP et JPY Pour cela, je vais taper son type taux de change, change, taux de change, méthode Keys, celle-ci. La méthode Change Rate Dot Keys vous donne toutes les clés du dictionnaire. Et comme vous le savez, un dictionnaire ne renvoie pas une liste normale. Je renvoie un objet à clé directe, mais nous avons besoin d'une liste normale. Nous devons en faire une liste normale. Pour cela, je vais utiliser la méthode list, LIST, list, et je vais la déplacer entre accolades. Laissez-moi vous montrer comment faire. Je vais passer une virgule. Maintenant, il va renvoyer les éléments exacts de la liste. Maintenant, cela fonctionne sous forme de liste. Ensuite, je vais définir la police de cette zone de liste. Je tape après une virgule une police égale à l' antenne et des tailles de police au pixel Ensuite, je vais emballer ce type de boîte à virgule de combo point PAC Mathod. Je vais configurer ce fichier. Pour l'instant, si j'exécute ce code dans mon terminal, vous pouvez voir, d'abord, que nous avons une étiquette de quantité, puis un flux d'entrées. Ici, nous allons mettre le montant. Ensuite, nous devons sélectionner la devise de départ. Vous pouvez voir une zone de liste déroulante et si je l'ouvre et que vous pouvez voir dans notre menu déroulant, nous avons le dollar américain, l'euro, l' INR, la livre sterling et le yen japonais À partir de là, nous pouvons sélectionner notre devise. De la même manière, nous devons créer une autre boîte de liste déroulante. Pour l'instant, je vais tuer le terminal, sélectionner cette section dupliquer cette section et remplacer le texte de l'étiquette. Je vais passer à une devise et aussi à une combinaison à une autre, et nous n'avons pas besoin de changer quoi que ce soit d'autre. Ensuite, je vais définir une fonction et nom de notre fonction est convert currency. Ici, je vais taper le nom de la fonction, Dave, et le nom de notre fonction est convertir les devises. Dans celui-ci et dans celui-ci, je vais taper pass, et je vais définir ce fichier. Je vais maintenant définir un bouton, un bouton qui va déclencher la fonction de conversion de devises. Donc, ici, je vais définir un bouton TKClass point et j'appuie sur ce bouton dans une fenêtre racine et le texte de notre bouton est Convert I coman this method, convert currency Et le texte de notre bouton est aérien et la taille est 12 J'ai défini une couleur d'arrière-plan pour ce bouton qui est bleu clair , puis j'emballe ce bouton et je veux sous-traiter ce fichier. Ensuite, je vais créer une étiquette qui imprimera le résultat. Pour cela, l'étiquette de résultat Hemot est égale à l' étiquette TK et nous la plaçons dans une fenêtre racine. Pour l'instant, le texte de notre étiquette est vide On ne met rien, alors je vais emballer cette étiquette. Donc, ici, je vais taper result label got PAC method, et je vais définir ce fichier. Ainsi, chaque fois que nous appuyons sur le bouton, vous appelez cette fonction de conversion de devises. Elle convertit la devise et imprime la valeur sur cette étiquette. En gros, dans cette fonction, nous allons configurer cette étiquette pour imprimer la valeur. Passons donc à la fonction de conversion de devises. Mais avant, je vais vous montrer à quoi ressemble notre interface. Donc, si je souligne dans mon terminal, voici à quoi ressemble notre interface abord, nous devons transmettre le montant , puis nous devons sélectionner la devise. Supposons que je sélectionne l'euro et que je souhaite convertir l'euro en INR. Ensuite, après avoir transmis la devise, supposons deux, trois, quatre, si j'appuie sur Convertir, cela affichera la valeur, le résultat sur cette étiquette pour l'instant, notre étiquette est vide. Lorsque j'appuie sur le bouton de conversion, la renonciation s'affiche. Revenons-en à la fonction. Convertissez des devises. Maintenant, dans un premier temps, dans la fonction interne, je vais supprimer le pass, puis je vais utiliser Tribloc TRY tran Ensuite, à l'intérieur du tribloc, nous devons d'abord obtenir la valeur du champ de saisie, le champ de saisie Je vais donc définir une variable et notre variable est le montant, le montant étant égal au montant, méthode de saisie par points. En utilisant la méthode du point gate, nous saisissons le montant. Supposons que si nous transmettons quelque chose, supposons 2,35, dans ce cas, notre entrée de montant serait une variable flottante Pour résoudre le problème, nous utilisons ici la méthode flottante. Maintenant, il va le convertir en poids flottant. Donc, pour obtenir le montant du champ de saisie, nous devons extraire le montant de la devise de la zone de liste déroulante. Devise héraldinsco identique à celle de la méthode Underscoombo Quelle que soit la valeur que nous sélectionnons dans la zone de liste déroulante, nous l'obtenons et enregistrons dans cette variable à partir de la devise. De la même manière, nous devons extraire deux devises. Je vais donc taper deux devises égales à la méthode de la porte combinée à deux points de soulignement Après avoir obtenu la devise d'origine, de la même manière, nous devons obtenir le moment où nous extrayons les deux devises des deux boîtes combinées. Maintenant, si la devise d'origine et deux devises existent, donc je tape E à partir de la devise et de deux devises, alors dans cette condition IP, nous devons convertir le montant. Dans un premier temps, nous devons convertir cette devise en USD. Si les deux devises existent, je souhaite les convertir en dollars américains. Donc, pour taper le montant en USD, soulignez le montant. Le montant en dollars américains est égal au montant que je vais diviser. Je vais diviser le montant par le dur, je vais passer le taux de change, les taux de change, et à l'intérieur du carré contre, je vais passer d'une devise à l'autre. Ensuite, nous devons convertir la devise USD en devise cible. Pour cela, je vais définir une autre variable : convertissez-la. Convertissez-le égal au montant en dollars américains, multipliez-le par les taux existants au cours du tour ou uniquement pour obtenir la valeur des deux devises. Ensuite, nous devons imprimer la valeur convertie dans l'étiquette. Pour cela, nous devons configurer l'étiquette. Ici, je vais taper l' étiquette de résultat point configure config. Ensuite, à l'intérieur des robes rondes, je veux configurer l'option texte. Texte, texte égal à, je vais utiliser une chaîne de caractères, puis à l'intérieur des codes doubles et à l'intérieur des robes Cali, je vais d' abord imprimer le montant et la devise de départ Égal à, alors je vais imprimer la valeur convertie. Ensuite, je vais imprimer le montant converti. Dans le Carlss, je vais taper, convertir une variable, mais il y a un problème Si la conversion renvoie un nombre dechim tel que 83,1 0555, je ne veux pas imprimer ce nombre à cet Je veux imprimer seulement deux chiffres après point après virgule décimale Pour cela, nous devons convertir cette valeur à virgule flottante. Pour cela, pour cela, nous devons travailler sur cette valeur à virgule flottante. Nous allons utiliser un spécificateur de format. Ici, après l'avoir converti, je vais taper colon.2a, point deux représente deux parties de Dhimil et A affiche le nombre à virgule fixe Ensuite, je veux imprimer à l'intérieur du Calibra, il est écrit deux devises, deux devises inférieures, et je vais définir ce fichier Après cela, nous devons gérer les parties s dans le document s, je veux afficher un message d'erreur si cela ne fonctionne pas parfaitement. Pour cela, je vais taper mess box point show error et c'est l'erreur Window. Veuillez sélectionner des devises. Si vous ne sélectionnez aucune telle que deux devises, sinon formez une devise, ce message d'erreur s'affichera. Dans notre bloc d'exception, nous devons également gérer l'erreur. Permettez-moi de vous montrer , sauf erreur de valeur. Ensuite, à l'intérieur de ce bloc d'exception, je veux afficher un message d'erreur. Ici, son type, la boîte de message affiche message d'erreur et notre message d'erreur est entrez un montant valide. Si nous ne saisissons pas un montant valide, si nous transmettons des caractères tels que ABCD, une erreur sera générée Maintenant, nous avons presque terminé. Définissons le fichier et exécutons ce code dans notre terminal. Donc, après avoir défini le fichier, je vais exécuter ce code dans mon terminal, et comme vous pouvez le voir, voici notre application de conversion de devises. Tout d'abord, je vais saisir le montant 12, et je veux le convertir en USD deux INR. Si j'appuie sur le bouton Convertir, comme vous pouvez le voir, la valeur est écrite, en fonction du taux de change. De même, si vous souhaitez le convertir en livre sterling, appuyez sur Convertir pour voir la valeur. Maintenant, au lieu de passer 12, si on passe un, alors quoi ? Ensuite, si j'appuie sur le bouton de conversion, cela va générer une erreur. Entrez un montant valide car il ne s'agit pas d'un montant valide. Maintenant, si je passe 13 et que je convertit ce montant en Iona en livre sterling, vous pouvez voir le résultat Notre convertisseur de devises fonctionne très bien. J'espère que c'est clair pour toi maintenant. Merci d'avoir regardé cette vidéo, restez connectés pour notre prochain studio. 52. Projet 5 : Convertisseur d'unités: Bonjour, les gars, c'est bon de vous revoir. Encore une fois, je suis de retour avec un nouveau projet, et aujourd'hui, dans ce projet, nous allons créer une interface graphique de conversion d'unités. Comme vous pouvez le voir sur mon écran, nous créons ce convertisseur d'unités de conversion, et nous avons ici plusieurs options. Tout d'abord, nous devons sélectionner la catégorie. Je tiens à dire que si j' ouvre ce menu déroulant, vous pouvez maintenant voir que nous devons définir deux catégories de longueur et de température. Si nous sélectionnons la longueur, dans notre liste déroulante ferme, par défaut, le mètre est sélectionné, et dans nos deux boîtes combinées, par défaut, le kilomètre est sélectionné. Si nous transmettons une valeur, elle convertira deux kilomètres en méta. Si je passe les 2000 mètres, puis j'appuie sur convertir. Maintenant, vous pouvez voir le résultat s'afficher sur cette portion, sur cette étiquette. Si j'appuie sur le bouton de conversion, comme vous pouvez le voir, 2000 mètres équivalent à deux kilomètres. la même manière, si vous convertissez 2000 pouces en kilomètre et que vous appuyez sur Convertir, vous pouvez maintenant voir 2000 pouces Si je convertis 2000 pouces en kilomètre, c'est avant 0,05 kilomètre Si vous convertissez 2000 pouces en 2000 pieds , puis que vous appuyez sur ce bouton, vous pouvez voir le résultat différent. 2000 pouces équivalent à 166 pièces de 67 pieds. Vous pouvez convertir n'importe quelle unité en n'importe quelle unité. Mais si nous sélectionnons la deuxième catégorie, supposons que si je descends cette page et que je sélectionne la température, vous pouvez maintenant voir dans notre liste déroulante nous avons des résultats différents tels que Celsius, Fahrenit et Nous avons maintenant des unités de température. Si je convertit 100 degrés Celsius en 100 degrés Fahrenheit, vous pouvez voir 100 degrés Celsius équivalent à 212,00 degrés équivalent à 212,00 Si je le fais en Kelvin et que j' appuie sur le bouton de conversion, vous pouvez voir 100 degrés Celsius égaux à 100 Kelvin C'est ce que nous allons construire aujourd'hui dans ce projet et comprendre comment nos logiques le sous-tendent Sans perdre votre temps, passons à l'aspect pratique. 53. Créez la structure et définissez la logique pour afficher les unités dans combobox: Comme vous pouvez le voir, nous sommes dans mon éditeur de code Salt Studio. Dans un premier temps, nous devons importer le module, les modules nécessaires. Tout d'abord, je vais importer le module Kinter. Donc, pour taper, saisissez Kinter sous la forme TK. Après cela, je vais importer des masses de boîtes. Comme je vais importer TK. Donc, pour taper depuis Kinteriput TK et Masses Box. Ensuite, je vais configurer le GY. Pour cela, je vais créer une fenêtre racine, racine égale à t point T. Ensuite, je vais attribuer un titre. Ici, je vais taper root point title Unit converter. Ensuite, je vais définir la géométrie, la géométrie du point racine, 400 pixels par 250 pixels et enfin, je vais exécuter une boucle principale Je tape root point mainloop. Dans notre application graphique, nous devons d'abord créer une sélection de catégories. Pour cela, nous allons utiliser la boîte Comvo. Mais avant, je vais définir un niveau pour cela. Je tape donc Tt, tt point Label, nous le plaçons dans une fenêtre racine et texte de notre étiquette est Sélectionnez une catégorie. J'emballe cette étiquette. Ensuite, ici, je vais créer une boîte à options, une combinaison de catégories. Pour créer la zone de liste déroulante, je vais définir une combinaison de catégories variables. Combinaison de catégories égale à ttk point combobox. Nous plaçons cette zone de liste déroulante dans une fenêtre racine et notre valeur de liste déroulante est la longueur et la température, et nous attribuons ici l'état en lecture seule Nous ne pouvons rien écrire sans ces deux valeurs. Ensuite, je vais emballer cette boîte à options de type catégorie point combo point PAC Mathod Maintenant, après avoir emballé cette boîte à options, je vais définir ce fichier et exécuter ce code dans mon terminal. Après avoir exécuté ce code, vous pouvez voir ici notre niveau, et voici notre boîte à options. Maintenant, si je clique sur cette liste déroulante, vous pouvez voir un total de deux valeurs, la longueur et la température. Vous pouvez sélectionner la catégorie. Si nous sélectionnons la longueur, alors dans nos unités, elle affiche différentes unités telles que le centimètre, mètre, le kilomètre, etc. Si nous sélectionnons la température, dans notre section des unités, elle affichera Kelvin, Fahrenheit Pour l'exécuter dans notre boîte à options, nous devons attribuer une fonction à l'aide de bind. À l'aide de bind, chaque fois que nous sélectionnons une valeur, je veux dire n'importe quelle valeur sélectionnée par une liste déroulante, puis je veux déclencher une Pour cela, ici, je vais taper la méthode de liaison par points combinés de catégories combinées. Dans le cadre du double cours, nous utilisons ici cet événement, combiné sélectionné. Chaque fois que nous sélectionnons un élément dans cette liste déroulante, cela déclenche les unités de mise à jour de cette fonction, et je vais définir la fonction dès maintenant. Ici, je vais définir la fonction et le nom de notre fonction est Dave update units. Pour l'instant, dans cette fonction, je vais taper pass. C'est une fonction basée sur un événement, je vais donc passer l'événement ici dans notre paramètre. Je vais configurer ce fichier. Ensuite, je vais créer la sélection de l'unité de départ à l'unité. Je tape une seule commande de bout en bout de sélection des unités et ici, je vais créer un cadre pour les unités. Donc, pour taper, taper, unités de cadre égales à TTGTFrame et placer le cadre dans la fenêtre racine je vais également emballer ce cadre, unité de cadre point pack Ensuite, à l'intérieur de l'unité de cadre, je vais définir un total de deux boîtes à options avec étiquette. Ici, je vais montrer les unités par unité et par unité. Laisse-moi te montrer. Je vais donc d'abord créer une étiquette, de type S, étiquette Ttgt, et je vais placer l'étiquette dans le cadre et les textes de notre étiquette à partir de là Ensuite, en utilisant la méthode de la grille, nous emballons cette étiquette. Nous plaçons cette étiquette au numéro de ligne zéro et au numéro de colonne zéro. Ensuite, je vais créer une liste déroulante. Je vais taper à partir combinaison d' unités égale à une zone de combinaison de points ttk, et nous plaçons cette zone de liste déroulante à l'intérieur de l'unité de cadre dans ce cadre et ici nous ne lui transmettons aucune valeur depuis l'unité, nous avons dit l'état lu uniquement parce que nous allons transmettre les valeurs de notre fonction, mettre à jour la fonction de l'unité En fonction de la sélection, par exemple de la température, nous allons passer la valeur. Ensuite, je vais le placer à partir d'une combinaison d'unités. Pour cela, je vais utiliser méthode de lecture par points combinés d'unités et nous la plaçons à la ligne zéro et à la colonne numéro un. Et je vais configurer ce fichier. Après avoir défini ce fichier, si j' exécute mon code dans mon terminal, voici à quoi cela ressemble. Maintenant, à côté de P de la même manière, je vais créer une autre liste déroulante et une autre étiquette pour deux unités Ici, je vais d'abord créer l'étiquette, ttk point label, et cette fois, je vais taper l'étiquette deux et placer l'étiquette à la ligne zéro et à la colonne numéro deux Ensuite, je vais créer la boîte à options. Pour la zone de liste déroulante, le nom de notre variable est une combinaison à deux unités, égale à une liste déroulante à points t. Ici, je vais placer cette zone de liste déroulante dans le cadre et les statistiques sont en lecture seule Après cela, vous devez placer cette zone de liste déroulante en utilisant la méthode de notation. Ici, je vais attacher deux unités undersco combo point GED, nous les plaçons au numéro zéro et à la colonne numéro trois, et ajouter un peu de rembourrage aux Après avoir défini ce fichier, si je code dans mon terminal, voici à quoi cela ressemblait. Maintenant, en dessous de ces deux combobox , je vais prendre le champ de saisie pour le vdu saisi par l'utilisateur. C'est ce que nous allons faire. Pour supprimer cette fenêtre je vais définir ici un champ de saisie. Pour créer le champ de saisie, je vais d'abord définir une étiquette à points Tt et nous plaçons l'étiquette dans une fenêtre racine et notre valeur de niveau est EnterValue.Le niveau prend cette valeur est EnterValue.Le niveau prend cette Ensuite, je marque cette étiquette. Je vais maintenant créer le champ de saisie. Pour cela, je vais lier la valeur d'entrée égale à l' entrée par point tt et nous plaçons l'entrée dans une fenêtre racine. Après cela, je vais paginer ce champ de saisie, une méthode PAC de type valeur d'entrée point Ensuite, nous devons créer un bouton qui va commander une fonction et cette fonction va convertir nos unités. Pour cela, ici, je vais définir un bouton, et le nom de notre bouton est le bouton de conversion. bouton de conversion est égal à la classe de bouton Ttgtd, et nous le plaçons dans une racine dans et notre bouton prend cette conversion et commande cette fonction, convertir, puis j' emballe ce Comme vous pouvez le voir, nous ne définissons pas notre fonction, je vais donc définir cette fonction, donc je copie le nom de la fonction, et ici je vais définir la fonction. Je vais taper DF et le nom de notre fonction est convert dans cette fonction et dans cette fonction pour le moment, je vais taper pass. Maintenant, chaque fois que j' appuie sur le bouton, il appelle la fonction de conversion et fonction de conversion pour convertir nos unités. Nous devons maintenant afficher le résultat. Pour cela, nous allons utiliser une étiquette. Ici, je tape une étiquette de résultat égale à une étiquette T, et nous plaçons cette étiquette dans une fenêtre racine Notre résultat textuel apparaîtra ici et notre police est Aerial 12 pixels et Bold Fon. Ensuite, j'emballe cette étiquette. Ainsi, chaque fois que je renvoie le résultat, il va configurer l'étiquette du résultat et remplacer le texte du résultat par le résultat. Travaillons maintenant sur la méthode Update unit. Je vais donc passer à l'unité de mise à jour de cette section. Dans cette méthode de mise à jour des unités , nous devons d'abord extraire la catégorie. Nous devons extraire la catégorie de la liste déroulante entre longueur et température. Donc, je tape la catégorie égale à la méthode de la porte combinée à points de catégorie. Donc, à partir de cette boîte à options, nous obtenons la catégorie. Cela peut être la longueur, sinon la température. Ensuite, à l'intérieur, je vais définir une condition IP. Si la catégorie est égale à la longueur, alors dans cette catégorie, je vais définir les unités, et je vais créer une liste d'unités. Je définis une unité variable et c'est une liste. À l'intérieur de la liste, nous avons le mètre, le kilomètre, le centimètre, l'ajustement au pouce et le mil en ellipse une catégorie ZIP égale à la température, puis dans la condition elliptique, ici je vais dire, ici je vais définir Ensuite, notre liste d'unités devient Celsius, Farénite et Kelvin. En tant que. Dans notre partie s, comme dans le bloc s, je vais passer la liste d'unités vide. Unités égales à une liste vide. Ensuite, nous devons placer les unités, ces unités dans la zone de combinaison, par exemple à partir d'une combinaison d'unités et d'une combinaison de deux unités. Je vais taper après le bloc en dehors de la condition s à partir de la combinaison d'unités, je veux définir les valeurs égales aux unités. De même pour le combo de deux unités, le combo de deux unités, je vais insérer le cli dans les carrés dont les valeurs sont égales à, je vais définir les unités. Ensuite, je vais configurer ce fichier. Après avoir défini ce fichier, si j'exécute ce code dans mon terminal, maintenant, vous pouvez voir si je sélectionne la catégorie telle que la longueur, puis dans notre unité de départ, nous avons maintenant une liste déroulante. Nous avons une liste déroulante d' unités de longueur telles que le mètre, kilomètre, le centimètre, le pouce, les pieds, le mil, etc. la même manière, si vous ouvrez deux boîtes de liste déroulante, vous pouvez maintenant voir toutes les unités de longueur. De même, si nous sélectionnons la température, vous pouvez maintenant voir que nous avons des unités de température dans notre boîte à options. Mais lorsque je sélectionne ma catégorie, comme vous pouvez le voir, nos champs de formulaire et deux champs de liste déroulante sont vides, mais je ne veux pas qu'ils Je souhaite sélectionner la valeur par défaut. Donc, pour les quatre unités ici pour l'unité de départ, ici, je vais mourir d' unité à partir de l'unité sous le courant, je vais sélectionner l'indice zéro De même pour les deux unités pour le combo de deux unités, je vais sélectionner l'index numéro un. Maintenant, pour définir ce fichier, si je réexécute ce code et si je sélectionne une valeur, catégorie telle que la longueur, vous pouvez voir par défaut sélectionner le mètre parce que le mètre est dans mon index zéro, et dans nos deux boîtes à combinaisons, il s'agit de sélectionner le kilomètre car kilomètre est dans notre premier index, et vous savez que l' index de notre liste commence à zéro. C'est pourquoi il sélectionne ces deux unités, et cela fonctionnera pour la même chose si nous sélectionnons la température. Maintenant, vous sélectionnez Celsius dans notre unité de départ et dans nos deux listes déroulantes, vous sélectionnez Fahrenheit Il s'agit de la première partie de ce didacticiel. Dans la prochaine partie de ce tutoriel, nous allons travailler sur la fonction de conversion. Vous devez également créer deux autres fonctions pour convertir la température et convertir la longueur. Merci d'avoir regardé cette vidéo, restez à l'affût de la prochaine partie de ce didacticiel. 54. Travailler sur la méthode de conversion: Il s'agit donc de la deuxième partie de ce didacticiel, et dans cette section, nous allons travailler sur la logique de conversion. Je tiens à dire que nous allons travailler sur cette fonction, la conversion. Au début, je vais supprimer le mot clé pass, et je vais utiliser Tri Block, essayez. Ensuite, je vais taper exit except block. Dans notre bloc de sortie, je vais taper value error value error, et je vais afficher un message. Je souhaite afficher un message d'avertissement. Ici, je vais taper un point dans la boîte de message Afficher l'erreur Méthode d'entrée non valide. Entrez une valeur numérique. Maintenant, dans un premier temps, dans le bloc tri, je vais obtenir la valeur. Je veux dire quelle que soit la valeur que l'utilisateur passe dans ce champ de saisie, ce champ de saisie. Nous devons donc extraire la valeur de la variable enrfield Je suis donc ici en train de taper une valeur variable, valeur égale à la méthode Gate du point d'entrée. En utilisant cela, nous pouvons obtenir la valeur de la variable et la convertir en nombre flottant. De la même manière, je vais extraire la catégorie. À partir de cette variable, combinaison de catégories. Pour cela, je vais définir une autre variable, category égale à category underscoe combo point gate method Ensuite, nous devons extraire l' unité from et également extraire les deux unités. Ici, je vais taper le nom de la variable à partir de l'unité, égal à la méthode du point combiné point gate de soulignement de l'unité Ensuite, je vais extraire deux valeurs unitaires. À partir de la combinaison de deux unités, je vais extraire la valeur et ajouter un bit à cette variable. Ensuite, je vais définir une condition dans cette catégorie triblog I égale à la longueur Si la catégorie est la longueur, alors je veux appeler une fonction Dans notre variable de résultat, résultat égal à ici, je veux appeler une fonction, et le nom de notre fonction est convert length. Je vais taper convert length et à l'intérieur du laiton rond, puis à l'intérieur du laiton rond, comme argument, je vais prendre la valeur, la valeur exacte, puis je vais prendre l' unité de départ et je vais prendre deux unités par unité. Et nous devons également définir cette fonction. Je vais donc copier le nom de la fonction convert length et après cela, après le bloc except, Hemotye a donné la longueur de conversion du nom de notre fonction en paramètre, je vais passer la valeur de l'unité à l'unité Ensuite, dans cette fonction pour le moment, je vais taper pass. Je vais créer cette fonction ultérieurement. Maintenant, je vais taper la catégorie I, égale à égale à l'intérieur des codes Dogon, je vais taper température, puis entrer la condition des lèvres Ensuite, je vais appeler une autre fonction, qui est de convertir la température. Je tape result égal pour convertir la température, et ici je vais passer les mêmes paramètres. Ensuite, nous devons définir cette fonction, je vais donc copier le nom de la fonction ici que je vais taper. Après cela, Dave, nom de notre fonction est convertir la température, et comme argument, je vais prendre la valeur de l'unité à l'unité. Je copie cette section et je vais la coller ici. Pour l'instant, dans cette fonction, je vais taper pass. Je vais le créer plus tard. Et je vais configurer ce fichier. Ensuite, dans notre S doc type s au lieu du S doc, je veux afficher un message d'erreur. Je souhaite imprimer Je souhaite afficher un message d'erreur. Tapez le point Afficher l'erreur dans la boîte de message et le nom de notre fenêtre est erreur, veuillez sélectionner une catégorie valide. Si vous ne sélectionnez pas de catégorie valide, le message d' erreur sera renvoyé. Sur ce, je veux y retourner. Retour Je veux revenir ici Je veux renvoyer le résultat. Je souhaite imprimer le résultat dans notre étiquette de résultat à cette variable. Nous devons configurer cette variable d'étiquette de résultat. Ici, je vais taper l'étiquette de résultat point Config, et je vais configurer le texte. J'utilise Estring et je vais d'abord transmettre la valeur Ensuite, à partir de l'unité et égal au résultat, j'utilise ici colon.2f, je veux dire, cela signifie un point plat, je ne veux imprimer que Je ne souhaite imprimer que deux chiffres. C'est pourquoi je l'utilise. Tout d'abord, il va imprimer la valeur. Si nous en passons deux, il en imprimera deux. Ensuite, il va imprimer l'unité de départ. Si nous dépassons deux kilomètres et que nous sélectionnons le kilomètre, deux kilomètres seront imprimés. Passons maintenant à la fonction de conversion de longueur. Donc, passez à distance et voilà, je vais taper. Il est essentiellement là pour créer un dictionnaire et le nom de notre dictionnaire est unités unités égales à, je vais faire en sorte que les unités de petits caractères soient égales à ici, je vais imprimer un dictionnaire. Au lieu de cela, le Cali res it me suggère déjà les valeurs. Je vais imprimer les valeurs mètre 110, kilomètre 1 000, centimètre 0,0 1 «   0,0 254 pieds et mil Essayons maintenant de comprendre les unités Ce que j'ai fait ici, notre première clé représente le mètre. Ici, 1 mètre est égal à 1 mètre, puis 1 kilomètre égal à 1 000 mètres. Ensuite, 1 centimètre est égal à 0,01 mètre. Ensuite, un pouce est égal à 0,025 mètre. Ensuite, nous avons 1 pied, 1 pied égal à 0,3 048 mètres Ensuite, nous avons mille 1 mille égal à 1609 0,34 mètre. En gros, nous convertissons chaque unité en poids au mètre. Il utilise le compteur comme unité de référence universelle. Ensuite, nous devons convertir l'entrée utilisateur en compteur. Pour cela, je vais définir une variable. Ici, je vais taper une valeur en mètres égale à, je vais passer la valeur utilisateur ici, puis je vais multiplier par unités unités point par unité. Quelle que soit l'unité qui utilise selec from combobox, nous la transmettons ici depuis le dictionnaire des unités, nous accédons à l'unité nous accédons à l' Supposons que vous utilisiez Select Centimeter. Ensuite, il va multiplier la valeur, supposons que l'utilisateur passe sept ici. Ensuite, il va multiplier sept par une valeur de 0,01. En gros, nous convertissons la valeur en mètre. Ensuite, nous devons convertir la valeur du compteur en unité cible, quelle que soit la valeur sélectionnée par les utilisateurs. Dans notre boîte à deux combinaisons. Pour cela, je vais renvoyer la valeur en mètres divisée par unités, et je souhaite accéder à deux unités. Dans nos deux boîtes combinées, si les utilisateurs sélectionnent des miles, ils diviseront la valeur du compteur par la valeur des miles, et le résultat sera renvoyé. Donc, pour définir ce fichier et vérifions-le. Cela fonctionne-t-il correctement ou non ? Quelqu'un pour appuyer sur le bouton Exécuter. Et d'abord, je vais sélectionner la catégorie qui est en retard après avoir sélectionné la catégorie, nous allons passer à ce bloc, cette condition p, et cela va à cette condition p, et cela va déclencher cette fonction, convertir la longueur. Et dans notre fonction de longueur, nous convertissons ici l' objectif en mètre, puis nous renvoyons le résultat original. Je vais donc transmettre la valeur saisie et je vais passer 12 mètres et je veux la convertir en mil. Sinon, pour l'instant, je vais le convertir en kilomètre. Si j'appuie sur Convertir, comme vous pouvez le voir, le résultat s'affiche. Si vous convertissez 12 mètres en kilomètres, le résultat sera de 0,01 kilomètre. Mais si nous sélectionnons 12 kilomètres et je vais le convertir en amer, dans ce cas, il produira 12 000 mètres, 12 kilomètres équivalent à mille mètres, notre méthode de conversion de longueur fonctionne parfaitement. Travaillons maintenant sur la température. Je vais tuer ce terminal et supprimer le mot de passe ici, je vais taper la condition IP. Si à partir d'une unité égale à C, si nous sélectionnons Celsius, alors dans cette condition IP, je vais utiliser une autre condition IP. Si nous sélectionnons Celsius, alors dans cette condition P, je vais utiliser si deux unités sont égales à Fahrenheit, puis je veux retourner ici Je vais calculer Celsius Je vais taper une valeur, et je vais multiplier la valeur par 99/5, et je vais ajouter 32 à huit Ajout depuis 32. Ici, nous convertissons la valeur Celsius en Fahrenheit. Ensuite, dans notre état ZIP, si LC si deux unités égales à, je sélectionne Kelvin K, puis dans la condition Lip, je vais revenir, revenir, et là je vais transmettre la valeur et je vais ajouter de la valeur avec 273,15 Non, c'est LC L deux unités égales à K, alors je veux le convertir en Kelvin Ici, je convertit la valeur Celsius en Kelvin et nous devons faire la même chose pour les degrés Fahrenheit Je vais phosphorer ce processus et hémotyper unité par unité, égal à égal si je veux dire fahrenheit, puis à l'intérieur du bloc p, puis à l'intérieur du bloc p, je vais utiliser Si P deux unités sont égales à Celsius C, C, la condition intérieure de la condition IP puis celle de la condition IP, je vais renvoyer les valeurs Fahrenheit Je vais renvoyer la valeur -32, multiplier par 5/9. Il va convertir la valeur Fahrenheit en degrés Celsius. Ensuite, L deux unités égales à Kelvin, si les utilisateurs sélectionnent Kelvin, puis convertissent Fahrenheit en Pour que t renvoie la valeur -32, multipliez par 5/9 plus Ici, nous convertissons la valeur Fahrenit en kelvin à l' aide de Il va renvoyer la valeur Kelvin après avoir passé la valeur Fahrenit Maintenant, nous devons faire la même chose pour Kelvin à t s à partir d'une unité égale à K, Kelvin, puis à l'intérieur du bloc LC, ici je vais sélectionner une autre condition Si deux unités sont égales à Celsius, alors dans la condition, vous devez convertir la valeur Kelvin en Celsius. Pour cela, je vais lier la valeur de retour et la valeur de retour -273,15, L LC, ils sélectionnent le Fahrenheit Dans ce cas, je souhaite y retourner. Je souhaite renvoyer la valeur Fahrenheit. Nous devons convertir la valeur Kelvin en degrés Fahrenheit. Ici, nous convertissons les degrés Fahrenheit en degrés Celsius. C'est pourquoi j'utilise cette formule. Je sais que dans ton cours de sciences, tu fais déjà ce calcul. Je ne vais donc pas expliquer comment cela fonctionne. Ensuite, nous devons renvoyer le retour, nous devons renvoyer la valeur, et je veux définir le fichier. Après avoir défini le fichier, si j'exécute ce code dans mon terminal et que je sélectionne la catégorie, cette fois je vais régler la température et je vais convertir les degrés Celsius en degrés Fahrenheit Ici, je vais passer les 100 degrés Celsius. Et si je le convertit en degrés Fahrenheit, comme vous pouvez le voir, 100 degrés Celsius équivalent à 212 degrés Si je fais entrer Cavi, vous pouvez maintenant voir 100 degrés Celsius, soit 100 kelvin Mais si je convertis 100 kelvin en 100 degrés Fahrenheit, puis que je ne fais pas de conversion, vous pouvez voir 100 kelvin équivalent à -279,67 degrés Fahrenheit. C'est ainsi que nous construisons notre convertisseur d'unités. J'espère que ce processus vous plaira. Merci d'avoir visionné cette vidéo, restez connectés pour notre prochain projet. 55. Inscription à la connexion depuis l’interface graphique: Bonjour, les gars. C'est bon de te revoir. Encore une fois, je suis de retour avec un nouveau projet Quinta GUI. Aujourd'hui, dans ce projet, nous allons créer un identifiant et un formulaire d'inscription, et nous allons stocker le nom d'utilisateur et le mot de passe dans un fichier JSON Nous allons également utiliser la méthode de hachage du mot de passe pour enregistrer le mot de passe Personne ne peut extraire le mot de passe facilement. Parlons maintenant de ses fonctionnalités. Si je parle de ses fonctionnalités, nous devons créer une inscription, créer un nouvel utilisateur et stocker le nom d'utilisateur et le mot de passe dans un JSON Ensuite, nous devons créer le login. Ici, nous devons vérifier les informations d'identification par rapport aux données stockées Puis vient la validation. Nous devons le valider pour éviter le double nom d'utilisateur et les champs vides, etc. Enfin, nous devons montrer les commentaires. Nous devons afficher les messages de réussite ou d'erreur avec messagebox Parlons maintenant de la configuration des fichiers. Tout d'abord, nous devons créer le fichier Python. Dans notre cas, je vais créer l'application point pi. Ici, nous allons taper le code principal de l'interface graphique. Ensuite, nous devons créer un fichier de base de données en utilisant le code JSON par point pour créer ce fichier automatiquement s'il n'existe pas. Commençons le codage et voyons comment nous pouvons le créer. Comme vous pouvez le voir, nous sommes dans l'éditeur de code de mon studio de résultats. Dans un premier temps, je vais importer le module Kiner, tapez input Kinter comme TK Ensuite, pour afficher les messages, je vais importer la boîte de message de Kinter So pour la taper depuis la boîte de messagerie de Kinteriport Ensuite, nous devons importer le module JSON pour taper Import JSn et ensuite, je vais importer le module du système d'exploitation Définissons maintenant l'inter GY. Dans un premier temps, je vais taper une seule commande. Ici, nous allons créer le Kint GY. Dans un premier temps, je vais créer la fenêtre racine. Je vais taper root égal à t point T class. Ensuite, je vais attribuer un titre ici Je vais attribuer un titre à cette fenêtre. Je vais taper root point title is at the round press login and sign from. Ensuite, je vais définir la géométrie de cette fenêtre. Je vais taper une géométrie racine de 300 x 250 pixels. Ensuite, je vais attribuer une couleur de fond à la fenêtre racine. Je vais taper root point config Method. Ensuite, à l'intérieur du laiton rond, je vais utiliser BG, couleur de fond, BG égal à deux, à l'intérieur des codes doubles. Je vais passer un code couleur. Ici, je veux appliquer une couleur grisâtre, someti Has tag e2e2 EP two Créons maintenant la boucle moyenne. Je suis ici pour root, la boucle principale. Ensuite, je vais créer les sorciers. Nous avons besoin de ces assistants pour prendre les entrées, telles que le nom d'utilisateur et le mot de passe, et nous devons créer deux boutons pour la connexion et l'inscription Ici, je vais en créer un plus tard. Je vais taper t point label et nous plaçons cette étiquette dans la fenêtre racine et le texte de notre étiquette est nom d'utilisateur. Ici, nous avons indiqué la même couleur de fond pour cette étiquette, et j'emballe cette étiquette. De plus, je veux prendre un champ de saisie. Pour stocker le champ de saisie, ici, je vais prendre une variable et le nom de notre variable est le nom d'utilisateur de l'entrée. Entrez le nom d'utilisateur égal à l'entrée tikt et nous plaçons ce champ de saisie dans la fenêtre racine et nous définissons ici 25 Ensuite, nous devons emballer ce champ de saisie. Pour emballer ce champ de saisie, je vais taper la variable nom d'utilisateur point Pack Mathod la même manière, je vais utiliser un autre champ de saisie pour le mot de passe. Je crée d'abord l'étiquette, puis je crée l'étiquette. Ici, je vais prendre le champ de saisie et notre variable de saisie est le mot de passe, et nous plaçons ce champ d'entrée dans une fenêtre racine au lieu d'afficher des caractères, je veux montrer ces étoiles Cela va transformer le personnage en étoile. Ensuite, je vais remplir le champ de saisie. Méthode de saisie du mot de passe par point. Ensuite, je vais prendre deux boutons. Un bouton est pour l'inscription et un autre pour la connexion. Au début, je vais créer le bouton de connexion, mais avant de démarrer WR. Et ici, je vais taper le bouton du ticket et le placer sur le même plan que la fenêtre racine, et notre bouton enverra cet identifiant par texto, et il commandera cette méthode, se connectera et définira avec dix pixels et une couleur d' arrière-plan cette couleur verte et pour la couleur de fond la couleur blanche. J'emballe cette méthode. Pad, et je vais aussi ajouter du rembourrage à Y xs, pad Y, je vais attribuer dix pixels, sinon cinq pixels Ensuite, je duplique ce bouton. Après avoir dupliqué ce bouton, celui-ci est destiné à l'inscription et il va commander la fonction d'inscription Je remplace le login par l'inscription. Ensuite, je vais définir la fonction. Je vais d'abord définir la fonction d'inscription. Je copie le nom de la fonction et ici et là, je vais taper Dave Notre nom de fonction est s' inscrire dans cette fonction, je vais taper pass. Pour l'instant, je vais taper pass pour éviter le. Ensuite, je vais dupliquer cette fonction et je vais l'appeler login. Je copie le nom de la fonction login, et je vais remplacer signup par login Et je vais configurer ce fichier. Après avoir défini ce fichier, si j' exécute ce code dans mon terminal, voyons à quoi ressemble notre interface. Après avoir défini ce fichier, si j'exécute du code dans mon terminal, voici à quoi ressembleront nos formulaires d'inscription et de connexion Nous avons d'abord le niveau du nom d'utilisateur, puis le champ de saisie du nom d'utilisateur, puis nous avons une étiquette de mot de passe, et nous avons le champ de saisie du mot de passe, puis le bouton de connexion et le bouton d'inscription C'est la première partie de ce tutoriel et dans la même partie de ce tutoriel, nous allons travailler sur les fonctions. Merci d'avoir regardé ce stade vidéo pour notre prochain tutoriel. 56. L’inscription aux connexions partie 2: C'est bon de vous revoir, les gars. Il s'agit de la deuxième partie de ce didacticiel, et dans cette section, nous allons créer le JSON. Mais d'abord, je vais définir une variable et notre variable est le fichier utilisateur. Fichier utilisateur égal à ici dans les codes doubles, je vais fournir un chemin de fichier, le chemin du fichier JSON. Dans les codes doubles, je vais taper users point JSON. Comme vous pouvez le voir dans mon répertoire de travail actuel, il n'y a pas de JSON dont nous avons besoin pour créer ce fichier JSON en utilisant la condition IP. Je vais taper une seule commande, adresse IP du fichier de création n'existe pas. Ensuite, je vais définir la condition IP. Si ce n'est pas le cas, le point de chemin du point st existe. Ensuite, à l'intérieur de la robe ronde, je vais transmettre le fichier utilisateur. Si ce fichier utilisateur n' existe pas dans mon répertoire de travail actuel, alors dans la condition alors à l'intérieur de l'IP, je veux ouvrir ce type avec open inside the roundre user file, user file et je veux ouvrir ce fichier en mode W. Dans les dieux uniques, je vais taper le mode écriture, W comme pointeur de fichier ape. Ensuite, dans cette fonction ouverte, je vais taper Json point dump Mthod dump Inside the rounddresses, je vais passer le dictionnaire Nt, puis notre pointeur de fichier, F. En utilisant cette méthode JSON dumb here, F. En utilisant cette méthode JSON nous écrivons un objet JSON vide Je vais agir comme une base de données de découpe pour stocker le nom d'utilisateur et le mot de passe. Maintenant, si je définis ce fichier et que j' exécute ce code dans mon terminal, vous pouvez maintenant voir dans mon travail actuel dans le répertoire qu'il a créé un point JSON JSON. Il va créer le JSON si le fichier n'existe pas dans mon répertoire. Sinon, ça ne va pas créer. Ensuite, je vais travailler sur la fonction d'inscription. Dans la fonction d'inscription, je vais supprimer le mot clé pass et d'abord, je vais d'abord prendre l'entrée Je tiens à dire que nous devons saisir le nom d' utilisateur, ainsi que le mot de passe. Ici, je vais définir un total de deux variables. Pour le nom d'utilisateur, je vais taper un nom d'utilisateur égal au nom d'utilisateur d'entrée point Méthode Gate. En utilisant la méthode de la porte, nous pouvons obtenir la valeur à partir du champ de saisie et en utilisant la bande de points et en utilisant la méthode de la bande, nous pouvons supprimer les espaces supplémentaires à la fin et sinon dès le début. De même, je vais prendre un autre mot de passe. Je vais donc définir une autre variable, mot de passe égal à la méthode d'entrée underscoe password point gate Et maintenant, nous devons vérifier le champ de saisie en utilisant la condition IP. Si notre champ de saisie, tel que nom d'utilisateur et le mot de passe, est vide, nous allons afficher un message d'erreur. Pour cela, je vais définir une condition IP, un certain type. Sinon, nom d'utilisateur ou mot de passe, alors dans cette condition EIP, je souhaite afficher ce message d'erreur Je vais donc taper messagebox point herror et nom de notre fenêtre est r. Tous les champs sont obligatoires. Sur ce, je veux le rendre. Retourner. Je vais transmettre ce mot clé de retour. flèche utilise le retour car après avoir affiché le message d'erreur, nous devons arrêter l'exécution. C'est pourquoi nous devons utiliser ce mot clé de retour. Ensuite, nous devons créer une méthode qui va charger les données depuis le AdjacenFile. Pour cela, je vais définir une méthode. Je vais définir une fonction et le nom de notre fonction est Dave load user dans cette fonction, je vais taper avec open with open. Dans la méthode open, je vais transmettre le fichier utilisateur, chemin du fichier utilisateur ou le chemin du fichier JSON, et je vais ouvrir ce fichier en mode lecture. Dans les codes doubles, je vais taper R sous la forme F. Ensuite, dans la méthode open file, je veux retourner return, je veux renvoyer JSON dot load Math. Chargez, je vais passer le huit à cinq points. Je vais maintenant appeler cette fonction load user dans la fonction d'inscription. Après mon retour ici, je vais taper users equal to load user. Je vais maintenant définir une autre condition IP. Si l'utilisateur nomme un utilisateur, je souhaite afficher un message d'erreur. Laisse-moi te montrer. Ici, je vais taper messagebox point show error, et nous allons afficher cette erreur et je vais taper dans notre boîte d'erreur, nous tapons username already exist Après avoir affiché ce message d'erreur, je souhaite arrêter l'exécution, je vais donc passer return. Ce message d' erreur s'affichera si nous avons le nom d'utilisateur préexistant dans notre fichier JSON Supposons que je sois déjà inscrit, que je crée déjà mon compte avec le nom d'utilisateur de Joint. Ensuite, si j'essaie de me réinscrire et de remplir le même nom Join To, ce message d'erreur s'affichera Sinon, nous devons ajouter le nouveau nom d'utilisateur et la nouvelle paire de mots de passe dans le dictionnaire. Pour cela, ici, en dehors du bloc EP, je vais orienter les utilisateurs à l'intérieur du carré, je vais transmettre le nom d'utilisateur et le nom d'utilisateur égaux au mot de passe. Je vais configurer ce fichier. Pour définir le nouveau nom d'utilisateur dans le fichier JSON, nous devons appeler une fonction, et le nom de notre fonction est save user. Mais nous ne définissons pas la fonction, alors définissons-la. Ici, après avoir chargé l'utilisateur, je vais définir une autre fonction et le nom de notre fonction est Dave save underscore user À l'intérieur de la cavité ronde, il ne faudra qu' un seul utilisateur de paramètres Ensuite, dans cette fonction, je souhaite ouvrir le JSON en mode écriture. Je tape avec le fichier utilisateur ouvert en mode écriture sous forme de cinq pointeurs huit. Ensuite, je vais taper Jasn dumb method, Jasn point dum, et je vais passer la valeur utilisateur user et le fichier et les cinq points F, et je vais définir ce Maintenant, je vais utiliser cette fonction, enregistrer l'utilisateur. Ici, j'appelle la fonction Enregistrer l'utilisateur, enregistrer les utilisateurs. Ensuite, je vais afficher le message de réussite. Je tape messagebox point show Info et le nom de notre fenêtre est success et le compte de type Hemo Et je vais configurer ce fichier. Maintenant, appuyez sur définir ce fichier, envoyons le code dans le terminal et voyons s' il fonctionne correctement ou non. Je vais donc appuyer sur le bouton Exécuter. Et là, je vais essayer de renseigner un nouvel utilisateur. Donc, mon nom d'utilisateur est Joint JAY a NTA, et je vais définir le mot de passe 12345, passe simple, et je vais appuyer sur le bouton d'inscription Après avoir appuyé sur le bouton d'inscription, comme vous pouvez le voir, le compte a été créé avec succès Cela montre les succès, les masses de succès. Et si j'ouvre mon fichier JSON, l'utilisateur point JSON, nom d'utilisateur joint est Joint et le mot de passe est 12345 Et si j'essaie de saisir le même nom, inscrire et de changer le mot de passe un, deux, trois, quatre, et que j'essaie de m'inscrire, vous pouvez maintenant voir le message d'erreur car le nom d'utilisateur existe déjà. Notre code fonctionne donc très bien. Ensuite, je vais ajouter un autre utilisateur, en ajouter un. Ajoutez-en un et je vais définir le mot de passe 111, et je vais passer le bouton d'inscription Il va définir le nom d'utilisateur et le mot de passe dans mon fichier JSON. Ici, vous verrez le résultat. Notre fonction d'inscription fonctionne correctement. Ensuite, nous devons travailler sur la fonction de connexion, mais pas dans ce tutoriel. Je vais le faire dans le prochain tutoriel. Merci d'avoir regardé cette vidéo, restez connectés pour notre prochain tutoriel. 57. Connexion en ligne - Inscription Partie 3: C'est bon de vous voir, les gars. Ceci est une autre partie de ce tutoriel et dans cette section, nous allons travailler sur la méthode de connexion, cette fonction. Pour cela, je vais supprimer le mot clé pass de la fonction de connexion et nous devons ici extraire les données du champ de saisie, du nom d' utilisateur et du mot de passe. Dans un premier temps, je vais extraire le nom d'utilisateur et l'enregistrer dans cette variable de nom d'utilisateur. À partir du nom d'utilisateur saisi, nous obtenons la valeur et, la même manière, nous devons extraire le mot de passe. Ici, je vais taper Password égal au mot de passe d'entrée, entry underscopassword point Une fois que j'ai obtenu les données de l'interface, nous devons charger l'utilisateur. Pour cela, Herm Tip charge l'utilisateur de la même manière que la méthode Load User. Celui-ci. Vous devez également définir une condition IP. Ici, nous devons définir une condition EP correspondant au nom d'utilisateur et au mot de passe du dictionnaire JSON. Nom d'utilisateur Hearty I, utilisez un nom d'utilisateur Si le nom d'utilisateur est dans le champ User et si le nom d'utilisateur se trouve dans les cuivres rondes, je vais utiliser le nom d'utilisateur, par exemple si je transmets Join à, alors la clé Joint correspondra à ce mot de passe Utilisez un nom égal au mot de passe. Ensuite, dans cette condition IP, je souhaite afficher un message de réussite. Ici, je veux montrer les masses de succès avec le nom d'utilisateur. Je vais taper Masses Box.in Four dans les Runs. Notre nom de fenêtre est success, et ici nous utilisons Estr et imprimer Bienvenue, le nom d'utilisateur. Si Advance login, il va imprimer AdvName et je m'inscris pour me connecter, puis il va imprimer le nom du joint Toujours dans notre blog els, nous devons gérer le message d'erreur. Je vais taper ls. Ensuite, à la place de l' Elsblog, je vais taper messagebox Notre nom d'utilisateur est une erreur et ici, imprimez utilisateur ou un mot de passe non valide Je vais configurer ce fichier. Passons maintenant à définir ce fichier. Exécutons le code dans notre terminal et essayons de nous connecter. Maintenant, comme vous pouvez le voir, dans le champ de notre nom d'utilisateur, je vais taper mon nom Joan JAY a NTA, J en majuscule Ensuite, je vais passer le mot de passe. Mon mot de passe est un, deux, trois, quatre, cinq. Si le nom d'utilisateur correspond à ce mot de passe et que vous appuyez sur le bouton de connexion, vous pouvez maintenant voir Welcome Join. Je montre le message de réussite. Mais si je change le nom d'utilisateur, donc je supprime le dernier caractère A et que j'essaie de me connecter, vous pouvez maintenant voir un nom d'utilisateur ou un mot de passe invalide. Cela montre les erreurs. De même, si je tape le nom d'add one A, Dwan et que je tape le mot de passe 1111 et que j'essaie de me connecter, vous pouvez maintenant voir Welcome en ajouter Il se connecte pour fonctionner parfaitement. Mais nous devons mettre à jour notre formulaire de connexion. Nous devons le rendre un peu plus avancé. C'est un simple formulaire de connexion de base, je n'en veux pas. Maintenant, si vous remarquez, si je dois accéder facilement au code utilisateur JSON, tout le monde pourra lire le mot de passe. Tout le monde peut utiliser ce mot de passe et se connecter à ce système. Je n'en veux pas. Je veux un hachage de mot de passe Nous allons mettre à jour ce système avec le hachage des mots de passe en utilisant SHA 256 Les mots de passe ne sont pas enregistrés en texte brut. Quoi que nous saisissions dans le champ du mot de passe, personne ne peut le lire directement. Revenons donc au fichier Python. Mais avant de tuer le terminal et revenir au fichier point Pi de l'application, je vais importer un autre module, et je vais importer le hashlptiImport hashlip C'est un module intégré de Python. Et maintenant, nous devons créer une fonction qui va convertir le mot de passe en hachage Je vais taper une seule fonction de commande pour hacher le mot de passe Ici, je vais taper le mot de passe de hachage Dave, et dans les Runbres, je vais passer le mot de passe Ensuite, dans cette fonction, je veux retourner, retourner, et je vais taper hash leave, hash leap point, et ici je vais utiliser H Haha 256 Dans la Runress, je vais transmettre le mot de passe. Encodage par points du mot de passe, encodage par points du mot de passe et sens rond. Après le type point, méthode de synthèse de Higgs. méthode d'encodage par points du mot de passe convertit la chaîne du mot de passe en octets car hashlib fonctionne en octets et hashlib H 256 crée un objet de hachage HH 56 à partir de l'octet du mot de passe et ig digest renvoie le hachage sous forme de flux hexadécimal lisible au lieu d' Je vais utiliser cette fonction de hachage des mots de passe pour copier cette fonction. Je vais l'utiliser lors de mon inscription Donc, chaque fois que je le signe, je vais remplacer ce mot de passe par le HashLFod Définissez le nom d'utilisateur de l'utilisateur égal à ce mot de passe de hachage. Cette fonction possède un mot de passe. Il va stocker le mot de passe au format de hachage. De plus, je vais appeler la même fonction de hachage du mot de passe chaque fois que je me connecte Ici, après avoir chargé l'utilisateur, je vais définir une variable appelée hast égale à hast égale fonction de hachage du mot de passe et nous passons le mot de passe, et je vais remplacer le mot de passe par le hachage de hachée Et je vais configurer ce fichier. Maintenant, après avoir défini ce fichier avant d'exécuter ce code, je vais passer aux paramètres de l'interface graphique. Je souhaite supprimer cette option car cette fois dans notre champ de saisie, je souhaite afficher mon mot de passe et redéfinir le fichier. Après avoir défini le fichier, si j'exécute mon code dans mon terminal et que je transmets le nom d'utilisateur Ad AD WAN, je vais définir le mot de passe A est 12 WQ et j' essaie de réussir l'inscription Après avoir appuyé sur s'inscrire, une erreur de décodage Json est écrite. Je pense qu'il y a un problème avec le décodage JSON, nous devons donc résoudre ce problème Essayons de le réparer. Pour résoudre le problème dans cette condition P, je vais utiliser le mot clé ou, Hem to use ou operator, et je dois définir une autre condition ou point pdpoint gate Size, le fichier utilisateur égal à zéro. Si le fichier est complètement vide, créez ce fichier JSON. Dans notre méthode load user, nous devons également gérer la même erreur. Ici, nous devons gérer l'erreur de fichier vide. Pour cela, je vais égaler si le point d'Os Perth obtient la taille, le fichier utilisateur égal à vide, si le fichier de descripteur est vide, alors je veux revenir, renvoyer un objet vide. Renvoie un objet vide. Je souhaite configurer ce fichier. De plus, dans la fonction open, je vais utiliser Tribloc Essayez à l'intérieur de ce bloc de tri. Je veux y retourner. J'ai coupé cette partie et à l'intérieur du tribloc, je veux renvoyer des charges mathématiques à chargement par points JSON C'est la base ronde, je vais passer le pointeur de fichier si alors dans notre bloc except, sauf ici, je veux imprimer l'erreur du décodeur JSON Pour gérer le fichier corrompu, je dois passer le point JSON DecoDeceError, error et à l'intérieur, je vais revenir Retournez, je veux renvoyer un objet vide, et je vais définir le fichier. Je vais également apporter quelques modifications à la fonction de sauvegarde de l'utilisateur. Ici, je vais ajouter IndiantFour Indian Four, et je vais définir ce fichier Voyons maintenant si cela a fonctionné correctement ou non après avoir défini ce fichier. Si j'exécute ce code dans mon terminal et que j' essaie de mettre quoi que ce soit, supposons en ajouter un. Ajouter un est mon nom d'utilisateur et dans notre champ de mot de passe, je tape QW 12 as et j' essaie de m'inscrire, comme vous pouvez le voir, compte créé avec succès. J'imprime le compte créé avec succès. je vous montre mon JSON, laissez-moi vous montrer mon JSON. Maintenant, vous pouvez voir qu'il est écrit sur notre nom d'utilisateur. Mais dans le mot de passe, il était écrit le code de hachage. Maintenant, si j'essaie de me connecter, avec le même nom d'utilisateur et le même mot de passe, si j'essaie de me connecter maintenant, vous pouvez voir Imprimer le message de bienvenue en ajouter un. De même, si nous ajoutons un autre nom d'utilisateur tel que Nerve and Sit Password, QWERT et 12345, ce mot de passe et que nous essayons de nous inscrire comme vous pouvez le voir, compte est créé avec succès pour RAR, il enregistre ce mot de passe, ce hashcode Si j'essaie de me connecter avec le même mot de passe et le même nom d'utilisateur, vous pouvez maintenant voir Pre-Welcome Uno, ce qui signifie que nous pouvons nous connecter au compte avec succès. Si j'utilise le même nom d'utilisateur et même mot de passe pour me réinscrire, vous pouvez maintenant voir le message d'avertissement. Le nom d'utilisateur existe déjà. Si je change le mot de passe, il indiquera toujours que le nom d'utilisateur existe déjà. J'espère donc que vous comprenez maintenant comment utiliser le hachage de mot de passe pour stocker le mot de passe au format blanc Merci d'avoir regardé cette vidéo Restez connectés pour notre prochain projet. 58. avec un mini moteur de recherche GUI: Bonjour, les gars, c'est bon de vous revoir. Encore une fois, je suis de retour avec un nouveau projet. Et aujourd'hui, dans ce projet, nous allons créer ce mini-outil graphique pour moteurs de recherche. Vous pouvez donc voir que nous avons une barre de recherche. Si nous recherchons une requête, supposons l'Inde et appuyons sur le bouton Rechercher, vous pouvez voir qu'elle renvoie dix résultats depuis le site Web. Il imprime également la description fournie par le site Web. Il imprime d'abord le numéro d'index, puis le titre. En outre, il imprime la description. Et vous pouvez remarquer que ces liens sont cliquables. Vous pouvez également remarquer que nous avons un soulignement si vous souhaitez en savoir plus. Si vous cliquez sur cette section, elle sera redirigée vers ce lien. Laisse-moi te montrer. Donc, si je clique dessus, il sera redirigé vers ce site Web C'est donc ce que nous allons construire aujourd'hui dans ce projet. Et dans notre boîte de résultats, nous affichons ici un total de dix résultats. Et c'est à vous de décider du nombre de résultats que vous souhaitez afficher. Voyons donc comment créer ce projet. Dans ce projet, nous allons en apprendre davantage sur le web scrapping avec l' aide de Beautiful Alors, comment pouvons-nous envoyer une demande de publication à un site Web, comment pouvons-nous extraire les données, comment nous pouvons les purifier, etc. Commençons donc. Comme vous pouvez le voir, nous sommes dans l'éditeur de code de mon studio, et comment je crée une application de fichiers Python point Pie. Dans un premier temps, je vais importer les modules importants. Tout d'abord, je vais importer le module Kinter en tant que type TK, saisir Kiner en tant que Ensuite, à partir du module Kinter, je vais importer du texte défilé Donc, pour taper depuis Kiner depuis Kiner, je vais importer du texte défilant car dans notre zone de texte, nous avons besoin de ce défilement mais pour faire défiler la page Après cela, je vais importer un autre module appelé request, type de demande d'importation. Nous utilisons ce module pour envoyer des requêtes HTTP. Ensuite, je vais importer un autre module. Et mon module lemme est une belle soupe. Je vais donc nouer ici. De BS Four importe Beautiful Soup. À l'aide de ce module, nous analysons le SDML. Il est utile d'extraire la description des liens de titre des pages Web. Et enfin, je vais importer un module de navigateur Web, un certain type, importer un navigateur Web. Grâce à ce module, nous pouvons ouvrir des liens dans le navigateur par défaut de l'utilisateur. Ensuite, je vais définir une fonction, et le nom de notre fonction est tel, un certain type, Dave search. Et pour l'instant, dans cette fonction, je vais taper pass. Je ne vais rien faire ici pour le moment. Ensuite, je vais passer à la configuration de l'interface graphique. Je vais créer un objet racine en utilisant TGass. Je tape donc une racine égale à t TK. Maintenant, pour créer l'objet racine, je vais démarrer la boucle de l'interface graphique pour taper root point mainloop Créons maintenant la structure de l'interface graphique étape par étape. Dans un premier temps, je vais attribuer le titre, et je vais définir le titre root point title Mini search engine. Ensuite, je vais définir la géométrie. Je souhaite définir la taille de la fenêtre pour cette géométrie du point racine de type vent avec 700 X 500 signifie une hauteur de 500. Après avoir créé la géométrie, je vais créer une barre de recherche. Pour cela, je vais d'abord prendre l'entrée de l'utilisateur. Je vais donc taper une entrée égale à la classe d'entrée à points t et dans le Runss, je vais placer cette classe d'entrée dans la fenêtre racine, et je vais dire l' antenne de police et la taille de police 14 Ensuite, je vais emballer à la ligne suivante, je vais emballer cette entrée. Je vais remplir le champ de saisie. Je suis donc ici en train de taper la méthode Entry Dot Pack. Et à xs, j'ajoute un rembourrage de dix pixels à Xxs, j' ajoute également un rembourrage de dix pixels mais je remplis ce champ de saisie Cela va donc prendre toute la largeur de cette application. Laisse-moi te montrer ça. Donc, après avoir défini ce fichier, si je lis du code dans mon terminal, voici à quoi ressemble notre application. Voici notre fil d'entrée. Ensuite, je vais créer un bouton de recherche pour cette barre de recherche. Ici, je vais taper le bouton de recherche, le bouton soulignement égal à la classe de bouton tk point, le bouton Tkt Et je vais placer ce bouton dans la racine de la fenêtre racine. Et le texte de mon bouton est du texte, et je vais définir la recherche par texte du bouton , la commande, et il va commander cette fonction, la recherche. Je vais également définir la police Aerial sur notre bouton de recherche. Pour cela, je vais taper police aerial. Et j'utilise une police de 12 pixels. Ensuite, je vais emballer le bouton de recherche. Je vais taper le bouton de recherche, la méthode du pack de points du bouton de recherche. C'est ça. Nous avons maintenant la barre de recherche. Nous avons également le bouton de recherche. Ensuite, je vais créer la boîte de résultats. Ici, je vais montrer les URL et la description. Pour cela, je vais taper une seule case EncominRsult, et nous devons également déplacer cette ligne au-dessus de la zone de résultats car cette ligne la zone de résultats car est destinée Ici, nous intégrons le bouton de recherche. Pour afficher le résultat ici, je vais définir une zone de soulignement de résultats, une boîte de résultats, une boîte de résultats très bien appelée « résultats, une boîte de résultats Scroll text point, scroll text method Comme vous pouvez le voir, nous importons déjà ce module ici, faisant défiler le texte depuis Kinter Import, Scrollix Ensuite, à l'intérieur du rond***, je vais placer cette boîte de résultats dans notre fenêtre racine. De plus, j'utilise rap égal à t rep, et j'utilise une taille de police 11, et notre famille de polices est aérienne Ensuite, je vais emballer cette boîte de résultats. Pour ce type de méthode Result Box Dot Pack, et à la place pour me déshabiller chez XXS, j'utilise un rembourrage de dix pixels Chez YXS, j'utilise également rembourrage de dix pixels et je veux remplir les deux directions J'utilise donc Tiger à la fois. Il a rempli la zone à XX, également dans les Yx, et s'est étendue de manière égale à la Donc, si je change la taille de notre application, elle remplira tout de même la zone. Et si je définis ce fichier et que exécute ce code dans mon terminal après 70 fichiers, si j'exécute ce code, si j'exécute ce code dans mon terminal, voici à quoi cela ressemble. Si j'élargis la zone, vous pouvez toujours voir qu'elle se sent dans la zone de texte défilant. Il s'agit de la mise en page simple que nous avons créée pour afficher le résultat de la recherche. C'est notre barre de recherche où l'utilisateur va placer la requête et nous avons le bouton de recherche. Si j'appuie sur le bouton de recherche, il trouvera la demande sur le site Web, et selon le résultat du site Web, il imprimera tous les résultats un par un. En gros, nous allons imprimer un total de dix résultats dans cette zone de texte de promenade. Voilà pour ce tutoriel. Merci d'avoir regardé cette vidéo, restez à l'affût de la prochaine partie de ce didacticiel, où nous allons travailler sur notre fonction, dont le nom est la recherche. Merci donc d'avoir regardé cette vidéo Sytune. 59. Travailler sur la fonction de recherche: Nous devons maintenant travailler sur cette fonction. Chaque fois que l'utilisateur clique sur ce bouton de recherche, je souhaite exécuter la fonction. Dans un premier temps, nous devons obtenir l'entrée de l'utilisateur à partir de ce champ de saisie. Cette variable. Je vais donc supprimer les requêtes de type pass et helm, requête égale au point d'entrée G Math. Ensuite, je vais définir la condition IP. Si ce n'est pas une requête, alors dans cette condition IP, ici, je vais taper return. En gros, il pourrait lire le texte de l' entrée de la zone de saisie. S'il est vide, il va directement arrêter l'exécution. Ensuite, nous devons effacer l'ancien résultat et afficher le texte de recherche. Pour cela, ici, je vais taper la zone de résultat, la méthode de suppression des points de la zone de résultat, dire Je veux supprimer du début de la position de départ à la position de fin. Pour cela, nous devons sélectionner 1.0. Il va définir la position de départ, puis je vais taper ttk dot method Cela va effacer cette zone de résultats de recherche. Revenons maintenant au code. Pour ne pas effacer la zone de recherche, je souhaite afficher la requête de recherche en cours dans cette zone de résultats. Pour cela, je tape la boîte de résultats point Insérer. Et je veux commencer par la fin du texte. Ici j'utilise Estring et je donne des conseils pour rechercher notre requête Puis la barre oblique inverse N pour les nouvelles lignes. Ensuite, je vais préparer les données d'URL. Pour cela, je vais utiliser le site Web de DDG, et je vais utiliser la version TML de DG Je vais donc taper une URL variable, URL égale à la barre oblique deux-points slam.dog.com SlashMlas de DPS Il s'agit de la version GETML pour les scripts. Nous allons donc envoyer la demande sur ce site Web. Ensuite, nous devons faire semblant d' utiliser un navigateur. La demande est envoyée depuis un navigateur. Pour cela, nous devons définir l'en-tête. Je vais donc taper des en-têtes, des en-têtes égaux à inside the carnivorouss, l' utilisateur ne l'est pas, et la Il va prétendre que la demande provient d'un navigateur. Cela permet d'éviter le blocage par le site Web. Ensuite, nous devons enregistrer la requête de recherche dans un format de dictionnaire. Pour cela, ici, je vais taper des données égales à celles contenues dans le Kaliss Ici, j'utilise un dictionnaire et la clé du dictionnaire est Q et la valeur est query. Ce paramètre Q est utilisé par Dan Taco et nous stockons ici la requête de recherche dans un format de dictionnaire Ensuite, nous devons envoyer le StdprQuest. Pour cela, nous allons utiliser post Math hoop, et ici nous devons indiquer trois paramètres, l'URL, les en-têtes et les données La somme des réponses est égale à la méthode request point post. Et à l'intérieur de la boucle, je transmettrai les données URL et l'en-tête En l'utilisant, nous envoyons ici la demande de publication au serveur. De plus, nous récupérons la réponse de l' estimation et nous l'avons stockée dans cette variable au format texte. Maintenant, si j'imprime le résultat dans une zone de résultat, je suis ici en train de taper, si j'imprime la réponse, tapez case de résultat point insert. Et pendant la pause de course, je vais commencer par la fin et ici, en utilisant Fstring dans la presse Cali, je veux imprimer les Donc, quelle que soit la réponse que nous obtiendrons, nous l'imprimerons dans ce champ de recherche, et je vais définir ce fichier. Après avoir défini ce fichier, si j'exécute ce code dans mon terminal et que je recherche notre requête, comme tout ce que vous pouvez rechercher, Python, langage, et que j'appuie sur Entrée, vous remarquerez que la structure d'estimation sera imprimée dans son intégralité. Laisse-moi te montrer. Donc, une fois que j'ai appuyé sur le bouton de recherche, vous pouvez voir qu'il imprime la structure complète des estimations avec les balises, et ça a l'air très bizarre Nous avons les titres, les tags, les résultats, tout ce qu'il imprime dans cette boîte. Maintenant, nous devons également le filtrer. Nous devons l'embellir. Pour cela, je vais utiliser une belle soupe pour analyser le contenu Nous allons donc convertir le HTML brut en un format structuré Donc pour l'instant, je vais commenter cette ligne. Nous n'en avons pas besoin. Et voilà, je vais vous transmettre le contenu. Je vais donc créer une soupe objet en forme de soupe, soupe égale à une belle soupe. Dans le cadre du processus du tour, je vais transmettre le texte lui-même, donc Hay tape le texte du point de réponse. Et j'utilise cet analyseur, l'analyseur t point. Il est maintenant très facile d' extraire l'élément. Ensuite, nous devons trouver tous les éléments profonds avec le résultat de classe. Ici, je vais définir une variable appelée résultats, résultats égaux à la méthode finale du sous-point. Et à l'intérieur de l'évidement rond, je veux cibler tous les éléments profonds J'utilise donc le deep tag. Je passe donc Dev. Il va cibler toutes les balises profondes. Mais dans notre page, il y a beaucoup de balises profondes, mais surtout, je veux cibler la classe de résultats. Je veux cibler une balise profonde avec une classe de résultat, donc je définis un soulignement de classe égal au résultat, et nous l'avons stocké dans cette variable de résultats Maintenant, si j'imprime cette valeur de résultat dans notre champ de recherche à partir de type, point de résultat inséré, ici, je vais imprimer les résultats de la variable de résultat, définir ce fichier et exécuter ce code dans mon terminal et dans notre mot de recherche, si je tape quelque chose, supposons du HTML. Vous voulez rechercher une table et appuyer sur le bouton de recherche. Vous pouvez maintenant le voir renvoyer le résultat. Il renvoie le résultat, mais cette fois il va être imprimé, il ne ciblera que le deep dag avec le résultat de la classe. Il ne cible pas les autres. Il va renvoyer toutes les zones d'éléments qui ont cette classe. Et à l'intérieur de cet élément profond, vous pouvez voir qu'il y a un autre élément profond, H par élément. Nous avons ici l'ancre avec les résultats du cours A. Elle contient le titre, ainsi que le lien, le lien du site Web. Vous devez donc cibler cette classe avec l'élément. Et pour épingler la description fournie par le site Web, nous devons cibler les résultats de la classe Snip, celle-ci Nous allons donc le faire dans la prochaine partie de ce tutoriel avec l'aide de for Loop. Donc, un par un, je vais cibler tous les liens fournis par ce site. Et c'est à vous de décider combien de résultats vous souhaitez placer dans cette zone de résultats, dans cette zone de recherche. Merci donc d' avoir regardé cette vidéo, restez connectés pour la prochaine partie de ce didacticiel. 60. Affichez le résultat dans une zone de texte: Salut, les gars, c'est bon de vous revoir. Il s'agit d'une autre partie et de la dernière partie de ce didacticiel. Et là, je vais faire un suivi. Pourquoi devons-nous effectuer un suivi ? Parce que nous ne devons cibler que dix résultats. Nous devons cibler uniquement un élément de dix dB, le premier élément de dix dB. Et nous devons imprimer le lien, balise de titre et la description. Pour cela, nous devons utiliser cette boucle. Certains types de I aboutissent à une fonction d'énumération. Ensuite, dans le Rundrass, à partir des résultats, j'utilise la technique du tranchage, la technique du découpage des listes Et à partir de là, je cible les dix résultats. Et là, je commence par le premier résultat. N'oubliez pas que je représente le numéro d' index et le résultat représentent chaque bloc de recherche. Maintenant, vous vous demandez peut-être pourquoi nous utilisons la fonction d'énumération La fonction Enumerate ajoute un index. Je veux dire que cela va ajouter un numéro d'index à chacun des éléments. Chacun des résultats de recherche. Cela fonctionnera comme un compteur. Ensuite, à partir du résultat de la recherche, je vais cibler la balise de titre. Mais avant, je vais commenter cette ligne pour le moment, je n'en ai pas besoin. Et dans cette boucle for, je vais cibler la balise title en utilisant le nom de la balise, ainsi que la balise avec une classe particulière. La balise de titre Samotag est égale au point de résultat Find. Et en utilisant une méthode fine, nous allons trouver toutes les balises d'ancrage et la balise d'ancrage particulière qui ont exactement la même classe, sous-code de résultat A, et de la même manière, nous devons trouver la description Je vais donc maintenant cibler le tag Snippet. Pour cela, je vais taper une balise d' extrait de code variable égale à la méthode result point find Et ici, je vais cibler la balise d'ancrage et la balise d'ancrage avec ce résultat de classe, soulignement, soulignement, couper Ensuite, à partir de cette balise de titre, je vais extraire le titre et la fuite. Oui, cette balise contient le titre et le lien. Donc, pour extraire cela ici, je vais définir une variable appelée title égale à title tag point gate text. Donc, en utilisant le texte Gate, nous allons obtenir le texte de la balise title. Avec cela, nous devons également définir une condition p pour gérer les données manquantes. Pour cela, je vais taper if title tag no title. Si aucun titre n'est disponible dans cette balise, vous allez imprimer le titre comme aucun titre. Maintenant, après avoir extrait le titre de cette balise de titre, nous devons extraire le lien de la balise de titre. Pour cela, ici, je vais taper link égal à from title tag, title tag à l'intérieur des crochets, l'intérieur du bris carré à l'intérieur du double cours, je veux cibler l'attribut Ici, je vais cibler l'attribut appelé HREA qui va contenir le lien exact Tapez donc HREF et définissez également la condition I de la balise de titre, sinon, elle imprimera hastexg S'il n'y a pas de lien, le tag has sera imprimé. Ensuite, nous devons extraire la description de la balise snippet. Pour cela, je vais le couper de manière équivalente à snipitag équivalente à snipitag Et ici je dis que je conditionne si Snippy balise autre qu'aucune description S'il existe une balise snippy, elle imprimera le texte de la balise Snip, et s'il n'y a pas de texte de balise snippy, elle n' imprimera aucune description Ensuite, un par un, je vais imprimer le lien du titre et la description dans notre boîte de résultats. Donc, ici, je vais cibler la méthode d' insertion de points dans la boîte de résultats. Et ici on insère le titre. Nous allons commencer par la fin, et en utilisant la chaîne E, j'imprime d' abord le numéro d'index de ce résultat, puis j'imprime le titre de ce résultat. Ensuite, j'utilise une nouvelle ligne pour l'espace, et ici vous pouvez remarquer que nous utilisons une balise de titre, car en utilisant cette balise, plus tard, je vais styliser ce texte, le texte de ce titre. Ensuite, je vais imprimer le lien. Ensuite, je vais également imprimer l'extrait. Maintenant, après avoir fait cela, définissez le fichier et exécutez ce code dans mon terminal pour voir s'il fonctionne correctement ou non. Nous avons presque terminé. Je vais donc rechercher une requête. Dans notre cas, je vais rechercher le nom de mon pays, l'Inde, appuyer sur Entrée, puis sur le bouton Rechercher. Ensuite, comme vous pouvez le voir, il renvoie un résultat de recherche pour l'Inde. C'est notre requête, voici notre titre, voici le lien, et c'est le lien fourni par le moteur de recherche. Et c'est la description fournie par ce site Web. Et comme vous pouvez le constater, chaque fois qu'il imprime le numéro d'index, il fonctionne comme un compteur, et il imprime un total de dix résultats dans notre boîte de résultats, car nous avons mentionné d'imprimer dix résultats dans notre boucle. Nous devons maintenant rendre ce lien cliquable. Pour cela, revenons au code car si je clique sur ce lien, je veux ouvrir le lien dans mon navigateur. Revenons donc au code. Je veux donc rendre le lien cliquable. Et pour ce faire, nous avons d'abord besoin de l' index de départ et de l'index de fin. Pour obtenir la position du lien, nous avons besoin d'un index de début et d'un index de fin. Je vais donc définir l'indice de départ égal à ici, je vais cibler la boîte de résultats à partir de la boîte de résultats, l'index des points, l'index. Ensuite, à l'intérieur de la cavité ronde, je vais d'abord taper pk dot insert Celui-là. Maintenant, qu'est-ce que cela va représenter ? insert Pdot représente la position actuelle du cursel dans la case à cocher Et pour revenir en arrière, ici, je vais utiliser le signe de concaténation et Concaténer avec les codes doubles à l'intérieur. À l'intérieur des codes doubles, ici, je vais extraire la longueur du lien. Donc, à l'intérieur du Cariss, je vais utiliser la fonction N AE N, N, et dans l'évidement rond, je vais transmettre le lien variable link C'est ça. Supposons que notre fuite comporte 19 caractères et, comme je vous l'ai dit, nous devons revenir en arrière car nous sélectionnons ici la position finale de ce lien. Je vais donc utiliser le signe moins moins la longueur de ce lien. De plus, après Calibrass, je vais utiliser un personnage appelé small C. Maintenant, c'est quoi ça ? Il s'agit essentiellement d'une syntaxe Kiner spéciale. Si nous utilisons le signe plus sinusoïdal, cela va aller de l'avant. Et si nous utilisons moins le sinus, cela va revenir en arrière. Et ici, nous définissons la longueur, le caractère, le nombre de caractères que nous avons dans ce lien Supposons que si nous avons 19 caractères dans ce lien, à partir de maintenant, il va reculer de 19 caractères. Et c'est exactement ce que nous utilisons dans ce code. Nous avons donc maintenant la position de départ de cette avance à ce moment-là. Maintenant, nous avons également besoin de la position finale. Pour cela, tapez simplement index, indice soulignement égal à l'index point de la boîte de résultats , insert de point ticker Il va extraire la position finale. Ensuite, nous devons appliquer une balise à la plage de texte. Pour cela, je vais taper le résultat Box point at tag method. Boîte de résultats point sur étiquette à l'intérieur de la Runress. abord, nous devons fournir un nom de balise, et comme nom de balise, je vais utiliser le nom du lien lui-même, puis nous devons définir la position de départ, l' index de départ, et je transmets l' index de départ d'un lien. Nous transmettons également l' index final d'un lien. Ensuite, je vais ajouter un événement à ce lien, et je vais utiliser un événement de clic. Pour cela, je vais taper la boîte de résultat Tt, tag, bind. Ensuite, à l'intérieur des lacets, je vais taguer Link Link lui-même. Et avec une virgule ici je vais utiliser, et ici je vais utiliser le clic droit de la souris Pour cela, à l'intérieur des codes doubles, je vais utiliser ce code. Bouton 1. Ensuite, à une virgule, j'utilise ici une fonction à une ligne Lambda, Lambda E. Et ici j'utilise le bouton 1 du code d' événement C'est pour un clic de souris. Donc, si je fais l'éloge du clic sur ce lien, cela activera cet événement. Ensuite, j'utilise une courte fonction anonyme. Il s'agit d'une petite fonction au lieu d'utiliser un gros code de programmation. Et ces fonctions s'exécutent lorsque nous cliquons sur ce bouton. Et dans cette fonction, nous représentons l'objet de l'événement. L'imprimante appuie automatiquement dessus lorsque les événements se produisent. Nous ne l'utilisons pas ici, mais il doit être inclus. Et puis vient la partie la plus importante. URL égale au lien. Cela a entraîné le problème courant de Python appelé retard de liaison. Dans le cas contraire, tous les clics n' ouvrent que le dernier lien. Cela n'ouvrira pas le lien exact lui-même. Ici, je tape une URL égale à link, colon, webbrowser dot Open method, et je vais ouvrir l'URL elle-même. Désormais, chaque Lambda stocke sa propre copie du lien, et c'est le bon comportement Chaque résultat a ouvert sa propre URL. Et la fonction Web Browser dot open it va ouvrir le lien dans un navigateur par défaut. Ensuite, je vais styliser le lien en utilisant des méthodes de configuration. Donc, tapez, zone de résultat, point, tag, config. Et à l'intérieur des lignes arrondies, je vais cibler le lien lui-même, et je vais définir le bleu au premier plan et je vais également ajouter le soulignement vrai Il va donc ajouter le soulignement de chacun des liens. Il va également changer de couleur. Nous avons donc presque terminé. Je vais juste personnaliser cette balise de titre. Je vais appliquer un téléphone un peu plus audacieux et une police plus grande à ce titre Pour cela, dans cette section, je vais lier la boîte de résultats à point Tag Config Method. Et je vais cibler ce tag. Titre, et je vais le dire couleur de police AL. Et ici, j'ai dit police Aerial, et la taille de police est 12, et j'utilise la police Boulder. C'est ça. Maintenant, je vais configurer ce fichier et exécuter ce code dans mon terminal. Après avoir exécuté ce code dans mon terminal, comme vous pouvez le voir, la fenêtre s'ouvre. Et je vais rechercher mon langage Python de requête. Et si j'appuie sur ce bouton de recherche, vous remarquerez maintenant qu'il imprime notre résultat. J'imprime tous les titres en police boulder et tous les liens soulignement et en bleu Et maintenant, si vous voulez ouvrir l'un des liens, suffit de cliquer sur ce lien, il vous suffit de cliquer sur ce lien, et le lien s'ouvrira dans votre navigateur, dans votre navigateur par défaut. Si vous souhaitez ouvrir ce lien Wikipédia, suffit de cliquer sur ce lien pour accéder au site Web de Wikipédia. C'est ainsi que cela fonctionne. Et comme je vous l'ai dit, cela donnera un total de dix résultats. C'est à vous de décider du nombre de résultats que vous souhaitez afficher. C'est donc tout pour ce tutoriel. Dans ce projet, je crée une mini-recherche dans Nin GY. En gros, nous extrayons le résultat d'un site Web dans notre cas, Doug DGG, et nous l'extrayons et l' organisons en utilisant le mode « soupe » magnifique En gros, nous utilisons une petite méthode de bardage Web, puis nous l'embellissons et imprimons le résultat dans notre zone de texte Merci d'avoir regardé cette vidéo. Restez à l'affût de notre prochain projet.