Créer une application de dessin semblable à MS Paint avec Tkinter ter | Jayanta Sarkar | Skillshare

Vitesse de lecture


1.0x


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

Créer une application de dessin semblable à MS Paint avec Tkinter ter

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

      3:02

    • 2.

      Créer la mise en page de cette application application

      10:49

    • 3.

      Ajouter le curseur de taille du pinceau en bas

      4:11

    • 4.

      Construisez la fonction pour dessiner

      10:28

    • 5.

      Travailler sur la fonction de couleur de peinture et le curseur de taille du pinceau

      7:49

    • 6.

      Travailler sur la fonction pour dessiner différentes formes géométriques

      7:43

    • 7.

      Travailler sur le bouton Enregistrer et Effacer

      12:02

  • --
  • 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.

4

apprenants

--

À propos de ce cours

Bienvenue dans ce tutoriel complet sur le projet Python Tkinter ! Dans la vidéo d'aujourd'hui, nous allons créer une application de toile de dessin entièrement fonctionnelle à l'aide de Tkinter. Ce projet est parfait pour les apprenants Python débutants et intermédiaires qui veulent comprendre la gestion d'événements, les widgets GUI, le dessin sur toile, les formes, les curseurs et la sauvegarde d'images.

À la fin de la vidéo, vous aurez votre propre application de dessin de type MS Paint, avec des tailles, couleurs, formes et fonctions de sauvegarde et de nettoyage des pinceaux personnalisés !

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, c'est bon de te revoir. Encore une fois, je suis de retour avec une nouvelle application Kinder GY liée à un projet Et aujourd'hui, dans ce projet, nous allons créer l' application Advanced Drawing Canvas. Donc, sans perdre votre temps, laissez-moi vous montrer la démonstration de ce que nous allons construire aujourd'hui dans le cadre de ce projet. Comme vous pouvez le voir sur votre écran, nous avons une fenêtre. Maintenant, dans cette fenêtre, nous avons un canevas. Si j'essaie de dessiner quelque chose, vous pouvez le voir, nous pouvons le dessiner. Nous pouvons dessiner n'importe quelle forme à main levée, nous devons appuyer sur le bouton de la souris et faire glisser la souris. Si vous souhaitez modifier la taille du pinceau, oui, vous le pouvez. Si vous voulez le réduire, si j'en fais un et que j'essaie de tracer une ligne, vous pouvez voir l' épaisseur de ce pinceau, et si vous voulez l'augmenter , oui, vous pouvez également le faire. Si je le fais en étain et que j'essaie de tracer une ligne, tu peux le voir. Vous pouvez dessiner une forme à main levée, vous pouvez modifier la taille du pinceau. De plus, si vous souhaitez changer la couleur du pinceau, oui, vous le pouvez. À partir de là, vous pouvez changer la couleur en n'importe quelle couleur. Supposons que si je fais une ardoise verte et que j'essaie de dessiner la forme, vous pouvez voir le résultat. Notre programme nous permet de changer la couleur, nous permet également de dessiner à main levée. De plus, si vous souhaitez tracer une ligne, cliquez simplement sur le bouton Ligne et vous pouvez tracer n'importe quelle ligne avec n'importe quelle épaisseur. Si vous modifiez la taille du pinceau, cela réduira l' épaisseur de cette ligne. De la même manière, vous pouvez dessiner n'importe quel rectangle. Vous pouvez également dessiner un cercle. De plus, notre programme vous permet d' effacer une partie si vous sélectionnez le bouton d'effacement, et si vous déplacez votre souris dessus, et si vous modifiez la taille du pinceau et que vous déplacez votre souris dessus, vous pouvez le voir supprimer les lignes du pinceau. Il agit comme une gomme. Il suffit d'effacer le bouton. Si vous souhaitez effacer la fenêtre immédiatement, appuyez simplement sur Effacer. Cela effacera toutes les fenêtres. Et enfin, nous avons le bouton de réglage. Donc, pour dessiner quelque chose, supposons que je trace une ligne et que je veuille définir cette image, alors vous devez passer le bouton de réglage. Cela ouvrira une fenêtre Sabas, et à partir de là, vous pourrez définir le fichier au format PNG, par exemple si je le crée Donc, si je donne le nom de notre fichier Demo 2 puis que je définis le fichier, il place le fichier dans ce dossier dans ce dossier particulier, également après avoir défini le fichier, il envoie des masses réussies, l'enregistrement est réussi. Cela indique l' emplacement du fichier enregistré. C'est ce que nous allons être aujourd'hui dans ce projet. C'est un dessin sur toile assez avancé car nous avons des commandes. Nous avons des contrôles sur la taille du pinceau. Nous avons des contrôles sur la couleur, à main levée, nous pouvons dessiner des lignes, nous pouvons dessiner des rectangles, circuits, nous avons une gomme pour effacer Nous avons également un bouton de déchirure pour effacer tout le champ en une fois et nous pouvons également enregistrer l'image depuis le canevas. C'est exactement ce que nous payons aujourd'hui dans le cadre de ce projet. Sans perdre votre temps, passons à l'éditeur de code Visult Studio 2. Créer la mise en page de cette application application: Enfin, on Min Knives est le coordinateur du studio. Dans un premier temps, nous devons importer les modules importants tels que kinter, color hoser, file dialog, mess box et pillow Donc, dans un premier temps, je vais importer Kiner en tant que TK. Après cela, à partir de Kinter, je vais entrer dans la boîte de fichier de sélection de couleurs et dans la boîte à messages. Donc, ici, je vais taper depuis Kinterimport, le sélecteur de couleur, la boîte de dialogue de fichier et la boîte de dialogue Ensuite, pour capturer la capture d'écran complète, à partir du module Pillow, je vais importer une capture d'image. Ici, je vais taper à partir de la capture d'image PIL Import. Après avoir importé le module nécessaire, je vais créer la fenêtre principale. Au début, je vais créer un objet en utilisant la classe TK et le nom de notre objet est root. Ensuite, je vais ajouter un titre à ce cours de cravate. Il tape, racine, point, titre, Advance Drawing Canvas. Ensuite, je vais enregistrer la géométrie. Je vais taper ou point Geometry 900 x 650 pixels. C'est la taille de notre fenêtre. Ensuite, je vais définir une couleur d'arrière-plan pour ensemble de notre fenêtre, tapez root point config, background, cette couleur de grille claire Ensuite, je vais exécuter l' application en utilisant Min Loop. Ici, je vais taper root point main loop, et je vais définir ce fichier. Ici, nous créons notre fenêtre simple de base. Nous définissons également la géométrie, 900 650 pixels. Après avoir créé la fenêtre principale, nous devons configurer l'interface utilisateur. Ici, je tape une configuration d'interface utilisateur unique et de commande. Et je vais définir un canevas. Je vais d'abord définir un canevas. Ici, je vais taper le nom de notre variable canvas, Canvas égal à pkt Canvas et nous plaçons le canevas dans la fenêtre racine, couleur de fond de notre toile est le blanc pur, et nous définissons avec 850 et une hauteur 500 Ensuite, j'utilise ce style de bordure surélevée et j'utilise une bordure de deux pixels. Ensuite, nous devons emballer cette toile. Ici, je vais taper la méthode Canvas point PAC à partir des Ss et YxS, ici nous attribuons une attache de dix pixels Ensuite, dans ce canevas, je vais attribuer certains événements de liaison à la souris tels qu'un bouton, un mouvement, le relâchement du bouton, etc. Ici, je vais taper une seule commande en liant les événements et abord taper la méthode de liaison par points Canvas Canvas, bind. Ensuite, dans les bus ronds, ici, dans les codes doubles, je vais taper notre effet de liaison rapide Bouton 1, et ça va déclencher une fonction, et le nom de notre fonction est start, underscoe, draw, start, draw Et comme vous le savez, ici nous ne définissons pas la fonction, nous devons donc créer la fonction. Donc, ici, je tape un single et commande des fonctions, et là je vais définir la fonction start draw, dont certaines sont de type DF et le nom de notre fonction est start, underscoe Et comme vous le savez, c'est une fonction basée sur les événements, donc je vais maintenant passer le EveTF dans cette fonction, ici, je vais taper pass. C'est ça. Ensuite, je vais utiliser une autre reliure de souris. Donc, Canvas Dot Blind. Cette fois, le tag de notre événement est B one motion. Comme vous le savez, il s'agit d'un événement de souris qui se déclenche lorsque l'utilisateur déplace la souris tout en maintenant le bouton de levage enfoncé. Je veux dire bouton 1. Si je clique sur le premier bouton et commence à déplacer mon curseur dans la zone du canevas, il se dessinera en fonction de la position de la souris Tu sais que le premier bouton représente un clic tardif. Encore une fois, nous devons définir ce dessin de fonction dans notre section des fonctions. Alors voilà, je vais essayer Dave, le nom de notre fonction est draw. En outre, il s'agit d'une fonction basée sur un événement, un certain type d'événement. Ensuite, dans la fonction pour instant, tapez Imo, passez. C'est ça. Notre prochaine action consiste à relâcher le bouton, à taper So, à relier par points sur Canvas, à relâcher le bouton 1. Reliure à points en toile, une reliure à boutons. Cela veut dire que si je relâche mon doigt sur notre toile, il arrêtera de dessiner. Nous devons donc définir la fonction stop draw. Je copie donc le nom de la fonction, et encore une fois, je tape. Dave, le nom de notre fonction est Stop Draw. Il s'agit d'un événement basé sur des fonctions permettant de passer un événement. Et ici, je vais taper pass dedans, et je vais définir ce fichier. Ce sont les raccourcis souris principaux et importants dont nous avons besoin pour tracer la ligne, sinon, quelle que soit la forme de notre toile. Maintenant, configurons le fichier , exécutons le code dans notre terminal et voyons à quoi cela ressemblait. Pour l'instant, ça ressemble à ça. Nous avons une zone de toile où nous allons dessiner nos formes ou nos lignes, peu importe. Ensuite, nous avons un espace. Dans cet espace, je vais placer tous les boutons nécessaires, tels que le bouton coloré du pantalon, le bouton Fee Hand, le rectangle linéaire, le cercle, le curseur, l'effaceur de cercles, le bouton Effacer et le bouton Enregistrer cela, nous avons besoin d'un ensemble de curseurs pour sélectionner la taille du pinceau En gros, nous allons d'abord créer un outil qui fonctionne. Pour cela, je vais prendre un cadre pour la tour. Revenons au manteau et là, je vais définir un cadre. Ici, je vais définir le cadre Tolar. Donc, d'abord, je vais créer la barre d'outils identique à la méthode du cadre à points de la barre d'outils. On dit que la classe de cadre est égale à t points et nous plaçons le cadre dans la fenêtre racine. Nous avons dit couleur de fond, cette couleur de fond correspond exactement à l'arrière-plan de la fenêtre. Ensuite, nous devons emballer cette barre d'outils. Donc ici, je vais taper la méthode Polar Dot Pack, nous remplissons cette barre d'outils en XX et nous ajoutons un peu de rembourrage en xs Ensuite, un par un, je vais créer des boutons pour cette barre d'outils, que je vais placer dans cette barre d'outils. Je vais taper le single et la commande et ici, je vais taper le bouton T dt, classe de boutons TK, et dans les robes rondes, je vais placer le bouton dans la barre d'outils. Barre d'outils, et pour l'instant, je vais le dire texte du bouton, texte, égal à notre premier texte sert à choisir la couleur. Alors voilà, je vais taper. Ce bouton est donc pour la couleur. Donc, ici, je vais associer la couleur à cette icône. Et pour l'instant, je ne vais pas utiliser le mot-clé command car c' ce que nous allons faire lorsque, étape par étape, je vais créer ces fonctions. Donc, pour l'instant, je ne vais pas utiliser le paramètre de commande. Donc, virgule, je vais définir l'arrière-plan. G, arrière-plan, et je vais dire arrière-plan dans les codes Dule. Cette couleur. Cette couleur bleu clair. Ensuite, je vais dire que pour le sol pour FG, tapez FGF four ground, je vais utiliser du blanc Donc, au lieu du double code, je tape la couleur blanche. Après cette virgule, l'option suivante que je vais utiliser W. Je vais définir avec un bouton avec, puis je vais emballer ce bouton Je vais donc taper ici la méthode PAC par points. Mets-toi dans le déshabillage. Tout d'abord, je vais définir le site secondaire. Je vais le placer sur le côté gauche, et je vais ajouter un peu de rembourrage en X XS, c'est tout. Je vais configurer ce fichier. Ici, je ne crée qu'un seul bouton. la même manière, nous devons créer plusieurs boutons pour plusieurs options de barre d'outils. Je vais donc dupliquer cette section et notre prochain bouton concerne le style à main levée. Ici, je vais changer le texte du bouton et le logo et je vais le configurer à main levée Ensuite, je vais changer la couleur de fond de ce bouton. Ensuite, je vais changer la couleur d' arrière-plan. Je vais remplacer la couleur par ce code couleur, cette couleur grisâtre, et je n'ai pas besoin de ce premier plan, donc je vais supprimer celui-ci la même manière, j'ajoute un autre bouton de ligne pour tracer la ligne. Si je sélectionne ce bouton, cela nous permettra de tracer une ligne droite. Et si nous sélectionnons la main libre, cela nous permettra de dessiner n'importe quoi. Nous pouvons dessiner une courbe en ligne droite n'importe quoi. Ensuite, je crée un autre bouton pour le rectangle. Cela va nous permettre de dessiner une forme de rectangle. Ensuite, je crée un autre bouton pour le cercle. Ensuite, vous créez un bouton pour effacer. Si nous sélectionnons ce bouton, nous pouvons supprimer tout ce que nous dessinons dans notre canevas. Après cela, je crée un autre bouton pour la voiture. Si j'appuie sur ce bouton, toute la zone du canevas sera nettoyée. En un seul clic. Pour configurer le fichier de dessin, je vais créer le dernier bouton pour Enregistrer. Ici, je définis un autre bouton pour enregistrer avec l'icône Enregistrer. Ici, nous définissons un total de huit boutons pour la couleur à main libre, pour la ligne, pour le rectangle, pour le cercle pour effacer, déchirer et enregistrer et nous alignons tous les boutons sur le côté gauche Comme vous pouvez le voir lorsque je place ce bouton, nous définissons le côté égal à APT. Cela va aligner le bouton sur le côté gauche de la barre d'outils. Maintenant, configurons le fichier et exécutons le code dans notre terminal. Après avoir défini ce fichier, si j'exécute ce code dans notre terminal, vous pouvez maintenant remarquer que nous avons les boutons. Nous avons un bouton de couleur, un bouton à main libre, une ligne, un rectangle, un cercle, une gomme à effacer, des piliers Ensuite, nous devons créer un slider. Nous devons créer un curseur pour définir la taille du laiton. Nous pouvons définir la taille du pinceau. Si vous voulez un pinceau épais, vous pouvez faire glisser le curseur vers le haut et définir votre propre taille de laiton Mais je ne vais pas le faire dans ce tutoriel. C'est déjà trop long, je vais donc le faire lors du prochain tutoriel. Merci beaucoup Restez à l'affût pour notre prochain tutoriel. 3. Ajouter le curseur de taille du pinceau en bas: Bonjour, les gars. C'est bon de te revoir. C'est la deuxième partie de ce tutoriel, et dans cette section, nous allons créer un slider, et je vais ajouter le slider en bas de cette fenêtre Nous allons créer ce curseur pour définir la taille du laiton Donc d'abord, je vais taper une seule commande, échelle de taille de soutien-gorge. Et pour créer ce slider, nous allons prendre un cadre. Ici, je vais taper taille de cadre égale à la classe de cadre à points T, et nous le plaçons dans une fenêtre racine et la couleur de fond est gris clair Après cela, je vais emballer un cadre de cette taille. Ensuite, je vais prendre une étiquette, et je vais définir le texte. Collez l'étiquette, et je place cette étiquette dans ce cadre et le texte de notre étiquette est en laiton. Maintenant, définissons le curseur après cela. Ici, je vais taper, brosser, souligner, faire glisser le curseur. Le curseur du pinceau correspond à la classe d'échelle des points T. Ensuite, à l'intérieur du pinceau rond je vais passer la taille du cadre. premier temps, je vais placer ce curseur dans le cadre de la taille du cadre, puis en tapant une virgule dans notre paramètre ferme à partir du trait de soulignement, je vais en définir Je vais commencer par un. Ensuite, je vais étendre jusqu'à deux paramètres, je vais en définir 20. Ensuite, nous devons définir l'orientation et je veux un curseur horizontal Je vais également définir la longueur de ce curseur, tapez la longueur 200 Pour l'instant, je ne vais pas définir la commande car une par une, je vais définir cette fonction plus tard. Dans cette section, j' essaie simplement de me concentrer sur le design de l'interface utilisateur. Ensuite, je vais définir une valeur pour notre curseur et notre valeur par défaut est trois Je tape Brass Slider Dot Set et à l'intérieur des ronds selon la méthode set, je passe trois valeurs La taille par défaut de notre pinceau est donc de trois. Ensuite, nous avons appuyé pour emballer le curseur. Voici donc la méthode Slider Dot Pack et j'appuie dessus du côté de la profondeur. De plus, je définis un certain appariement à Xxs dix pixels. Et je vais configurer ce fichier. Pour configurer ce fichier, listez le code dans aucun terminal et voyez à quoi ressemble notre interface utilisateur. Donc, pour exécuter ce code sans terminal, vous pouvez maintenant voir à quoi ressemblent nos boutons, notre cadre et notre curseur Je vais maintenant définir quelques variables globales, sont toutes des variables globales importantes. Donc, en haut, avant les fonctions, avant la section des fonctions, ici, je vais définir quelques variables globales. Je tape les variables globales d'une seule commande. Dans un premier temps, je vais définir la couleur rose par défaut, et je vais la mettre en noir. Je tape la couleur rose, égale au noir. Ensuite, je vais définir la taille du laiton. Type donc, taille du laiton égale à trois. Définition de la taille du laiton et de la largeur du trait, et par défaut, je souhaite sélectionner l' outil actuel à main levée Nous pouvons donc dessiner n'importe quelle forme à l'aide de notre souris. Donc, pour taper la mélodie actuelle , c'est à main levée. Ensuite, je vais définir deux autres variables à la fois, X xs et Y xs. Je veux dire démarrer les œufs et commencer par Y. Donc, disons que cela commence par les œufs et Y commence par Y égal à nonne et aucun J'ai dit à la fois le Valuun parce que cette variable permet de se souvenir de l' endroit où notre souris a été louée Ensuite, je vais définir une autre variable globale, révision des formes. Révision de la forme égale à aucune. Cette variable enregistrait temporairement la forme d'aperçu pendant le déplacement. Pendant que nous faisons glisser notre curseur dans notre cadre, il ne se souviendra que temporairement de la forme. C'est tout pour ce tutoriel. Dans le prochain tutoriel, nous allons travailler sur les fonctions. Merci d'avoir regardé cette vidéo, restez connectés pour notre prochain tutoriel. 4. Construisez la fonction pour dessiner: C'est bon de vous revoir, les gars. C'est une autre partie de ce tutoriel, et dans cette section, nous allons nous concentrer sur les fonctions, les fonctions de base qui nous permettent de dessiner dans notre canevas. Comme vous pouvez le voir ici, j'applique une méthode de liaison dans notre canevas, comme le premier bouton, puis le mouvement du bouton 1 et le relâchement du bouton. Dans un premier temps, nous devons travailler sur cette méthode, commencer, dessiner. Il a appelé la fonction. J'ai appelé lorsque le bouton de la souris est enfoncé sur le canevas. Donc, si je clique sur ce canevas, il va exécuter une fonction, et le nom de notre fonction est start draw. Il va également enregistrer les coordonnées de départ du dessin. Donc, dans cette fonction, je vais d'abord utiliser le mot clé global Global, et je vais rendre ces deux variables globales, démarrer a et démarrer Y. Par défaut, j'ai dit Voluun et ici je vais en faire une variable globale Ensuite, nous devons attribuer la valeur exacte de position du curseur obtenue par la méthode de liaison. Je veux dire, événement et événement Y. Voici donc type, début X virgule, début Y, début Y égal à son type événement X et événement Y. En utilisant le mot clé global, nous remplaçons la valeur de la variable par les valeurs de l' événement X et de l'événement Mais avant de commencer à travailler sur la fonction de dessin, la fonction de dessin, je dois travailler sur l'outil de réglage, le sélecteur de couleur et modifier la fonction je dois travailler sur l'outil de réglage, brushiz Dans un premier temps, je vais travailler sur le réglage de la fonction de l'outil. Par défaut, comme vous pouvez le voir, j'utilise ici l' outil actuel, main levée, mais nous devons créer une fonction qui nous permettra de nous faufiler entre tous les outils tels que main libre, rectangle, cercle, gomme, etc. Je vais donc définir ici une autre fonction et je vais donner un pourboire à Dave Set Tool. Ensuite, dans cette fonction, je vais faire briller la variable d'outil actuelle, l'outil actuel, puis je dis outil actuel égal à outil. Donc, quelle que soit la valeur que nous transmettons à cette fonction, elle sera définie comme outil actuel. Supposons, supposons des boutons dans nos boutons, je veux définir ces boutons ici, j'appelle SetOlFunction, et je définis l'outil en fonction du Pour les larmes, je veux définir la gomme, je veux définir la raison, etc. Donc, selon le bouton, fonction setol va régler les outils Je vais maintenant appeler la fonction de réglage dans nos boutons. Passons donc au bouton. Et pour la main libre, comme pour le bouton main libre, je veux appeler main libre. Utilisez ici la fonction Lambda one liner. Comme vous le savez, pour appeler cette fonction dans ce bouton, nous devons utiliser le paramètre de commande. Après avoir défini le texte ici, je vais utiliser la commande Hemlotype Commande, commande égale deux, et je vais utiliser une fonction linéaire Lambda car nous devons définir un argument avec cette fonction C'est pourquoi je vais utiliser la fonction Lambda. Certains types Lambda et je veux appeler set tool function, set tool. Celui-ci. Ensuite, dans les vies à l'intérieur des codes doubles, je vais taper à main levée. Copiez le texte à main levée, et je vais le coller ici. Et je vais faire de même pour le citron vert. Ici je copie la commande et je la colle ici, puis je vais remplacer free hand par de la chaux. Ensuite, je fais la même chose pour le rectangle, également pour le circule et pour la gomme également Dans nos cinq boutons, ligne à main libre, rectangle, cercle et gomme, nous utilisons la fonction de réglage de l'outil Quoi que nous transmettions à cette fonction, elle définira l'outil actuel. Comme vous le savez, par défaut, notre outil actuel est à main levée Donc, si l'utilisateur appuie sur ce bouton, le bouton de ligne, il définira la ligne de valeur carental Nous allons maintenant travailler sur le tirage au sort. Comme vous le savez, cette fonction est appelée chaque fois que la souris bouge alors que le bouton lebed est maintenu enfoncé. Parce que dans notre cas, nous utilisons B one motion, et comme vous le savez, nous nous donnons même des informations sur la position actuelle de notre souris, telles que et YxS de notre curseur Maintenant, dans cette fonction, nous devons rendre globales nos variables importantes, telles que start X, start Y et shape preview. Nous rendons cette variable globale. Et maintenant je vais passer à la prochaine étape, je vais définir la condition I dans cette fonction de dessin. Ici, je vais taper l'outil actuel à main levée et gomme signifie que si l'une des conditions est vraie, alors dans cette condition IP, par défaut, comme vous le savez, nous sélectionnons à main levée et nous devons créer cette lettre minuscule, libre et aussi ligne par lettre minuscule, Sinon, cela lancera une flèche car pour les autres arguments, nous utilisons des lettres minuscules. C'est pourquoi j'utilise des lettres minuscules pour ces deux variables. Si notre gomme à main libre Carintulin est une gomme, alors dans cette condition, je vais d'abord définir la couleur Couleur, couleur, je vais définir la couleur blanche. À l'intérieur de la porte, j'ai indiqué la couleur. Maintenant, vous avez peut-être une portion. Pourquoi j'utilise la couleur blanche ? Parce que j'ai déjà dit la couleur par défaut le noir, alors pourquoi j'utilise le blanc ? Comme vous pouvez le voir, je vois ici une condition si notre outil actuel à main levée sinon effaçable. S'il s'agit d'une gomme, nous devons supprimer la ligne Nous devons retirer notre dessin. Pour cela, nous avons besoin de peinture blanche car la couleur de fond de notre toile est le blanc, la couleur gomme étant submergée par C'est pourquoi j'ai dit la couleur blanche et avec cela, si l'outil actuel est égal à la gomme, si l'outil actuel est égal à la gomme, la Cela va cependant définir si l'outil actuel est une gomme, puis si l'outil utilise la couleur blanche, L utilise la couleur de douleur Comme vous le savez, par défaut, nous disons l'épingle de couleur noire. Par défaut, il va dessiner les formes en noir. Ensuite, nous devons utiliser Canvas point CreateIneFunction pour créer la Donc, à la ligne suivante, je vais taper Canvas, Canvas point create line, underscore line Create line n'est pas la méthode valide de l'intro. Ensuite, à l'intérieur de la presse ronde, nous devons d'abord définir la position de départ x. Ensuite, nous devons définir la position Y de départ, puis les prises d' événements et la position y. Voici une égalité, départ X, départ X, puis départ Y, départ Y. Après cela, nous devons passer les prises de l' événement et les coordonnées de l'événement Y. Point X de l' événement et Y. Coordonnées Y du point de l'événement. Nos deux premières valeurs sont pour X un et Y une position, et nos deux secondes valeurs sont pour X deux et Y deux positions. Position de notre curseur. Après cela, je vais dire que la couleur de remplissage, une certaine manière, est égale à la couleur. Ensuite, je vais dire, avec le pinceau, un certain type, une largeur, et ici je vais utiliser la valeur de la taille du pinceau, pinceau, la taille, celui-ci. Et comme vous le savez, par défaut, nous définissons la taille du pinceau trois. Après cela, virgule, nous devons définir le style de casquette. Certains modèles de casquette, à pois ronds. Maintenant, la question est de savoir pourquoi j' utilise le style de casquette pour arrondir ? Parce que cela rend le bout de la ligne lisse et rond. De plus, je vais faire en sorte que smooth soit égal à vrai. Cela va nous permettre de tracer une ligne fluide. Cela permettra de rendre la ligne de trottoir plus fluide. Maintenant, chaque fois que nous déplaçons la souris, une ligne, une petite ligne relie la position précédente et la nouvelle position de la souris. Visuellement, il forme un trait continu. Après cela, nous devons également mettre à jour les coordonnées. Il s'agit de démarrer X et Y de manière égale à l' événement X et à l'événement Y. Pourquoi devons-nous le mettre à jour Parce que nous mettons ici à jour la position précédente pour le segment suivant. La ligne suivante continue sans problème, et je vais configurer ce fichier. Maintenant, après avoir défini ce fichier, si j'exécute ce code dans mon terminal, vous pouvez voir ici notre zone de canevas. Je ne vais sélectionner aucun bouton parce que si je sélectionne un bouton, si j'appuie sur un bouton, cela changera la condition. Ensuite, la main libre devient autre chose, comme une ligne, un rectangle, sinon un circulo. Je ne vais appuyer sur aucun bouton. Je vais commencer à dessiner dans notre zone de dessin. Si j'appuie avec ma souris sur cette zone du canevas et que je commence à dessiner, vous pouvez voir les lignes. Nous avons réussi à tracer les lignes. De plus, pour relâcher ma souris, elle a arrêté de dessiner. Comme vous le savez, par défaut, nous utilisons le noir de couleur rose. Mais si j'appuie sur le bouton de la gomme, je vais appuyer sur le bouton de la gomme Maintenant, il est présenté en rose pâle. Donc, si j'essaie de supprimer cette ligne, donc si je fais glisser ma souris dessus, vous pouvez voir maintenant la ligne dessinée en blanc. C'est pourquoi nos lignes sont submergées par la couleur de fond. Maintenant, cela nous donne un effet d'effacement car notre couleur de fond est le blanc Pour l'instant, c'est tout pour ce tutoriel. Dans la prochaine partie de ce didacticiel, nous apprendrons comment modifier la couleur de la douleur. Nous allons également apprendre comment activer bouton de notre voiture pour modifier l'image. Merci d'avoir regardé cette vidéo Stune pour notre prochain tutoriel 5. Travailler sur la fonction de couleur de peinture et le curseur de taille du pinceau: Bonjour, et bienvenue à une autre conférence sur ce projet. Aujourd'hui, dans cette conférence, nous allons travailler sur la fonction des couleurs, et nous allons apprendre comment changer la couleur de notre crayon. Nous allons également apprendre comment modifier la taille du laiton. Nous allons travailler sur deux fonctions au total, la fonction couleur du tuyau et la fonction de modification de la taille du laiton. Ajoutons donc une commande à ce bouton. Donc ici, dans notre bouton de couleur, je vais ajouter une commande, et le nom de notre commande est choisir la couleur. Et comme vous le savez, nous ne définissons pas cette fonction dans notre section des fonctions. Je vais donc copier le nom de la fonction, choisir la couleur, et je vais créer cette fonction. Donc, après avoir configuré l'outil, je vais créer cette fonction dans cette section. Tapez donc Dave et le nom de notre fonction est « Choisir la couleur ». Je vais définir les progrès. Ensuite, dans la fonction, pour l'instant, je vais taper pass. Je vais également définir une autre fonction pour modifier la taille du soutien-gorge de Dip Dave. Notre fonction s'appelle Changer la taille du laiton, et à l'intérieur du pinceau rond, je vais passer une variable pour cette valve Dans la fonction pour le moment, je vais taper pass. Maintenant, nous devons maîtriser cette fonction dans nos compétences. Copiez le nom de la fonction et ici, ici, commande, égale au type, commande égale pour changer la taille du laiton. ce que j'appelle une fonction. Je vais configurer ce fichier. Maintenant, je vais d'abord travailler sur la fonction couleur choisie. Revenons à la fonction de couleur choisie. Dans cette fonction, nous allons ouvrir une boîte de dialogue de sélection de couleur, qui permettra à l'utilisateur de choisir une couleur de dessin. En gros, nous allons changer la couleur de peinture à l' aide de la boîte de dialogue du sélecteur de couleur Donc, d'abord, je vais d'abord passer à la variable globale, globale et je vais à variable globale de couleur de douleur parce que nous allons l'utiliser. Par défaut, comme vous le savez, couleur de notre épingle est le noir. Ensuite, je vais définir la couleur. Couleur, couleur équivalente à ici Je vais ouvrir une boîte de dialogue de couleur choisie, de sous-type de couleur choisie, de point, de couleur de demande Demandez la couleur. Ensuite, à l'intérieur du tour, il est dit : « Je vais définir le titre de cette boîte de dialogue ». Titre, et je vais utiliser exactement le même titre que celui utilisé pour nos programmes. Titre égal à choisir la couleur de la peinture. Ensuite, je vais parler d'une condition IP. Si je colore la couleur à l'intérieur de la base carrée, puis à l'intérieur de cette condition p, puis à l'intérieur de cette condition, je vais dire la couleur de la douleur. Ensuite, je vais dire couleur de l' épingle, douleur, couleur, égale à la couleur, égale à la couleur à l'intérieur de la résine carrée, un Maintenant, la question est de savoir ce que j'ai essentiellement fait ici ? Tout d'abord, nous globalisons cette couleur d'épingle variable, puis nous ouvrons une boîte de dialogue de sélection de couleurs. Ensuite, je vois l'état. Si vous coloriez à l'intérieur de la base carrée, j'en utilise une. J'utilise l'index numéro un. Si vous utilisez le numéro d'index zéro, cela représentera la couleur RGB si vous utilisez l' indice numéro un, puis cela représentera la couleur hexa V. Comme vous pouvez le voir, j'ouvre ici un sélecteur de couleurs intégré de Kiner et il est écrit un tupel dans ce tupel, nous j'ouvre ici un sélecteur de couleurs intégré de Kiner et avons un ce tupel Une couleur RGB et une couleur hexa Vallow et voici une valeur de couleur hexa Si je choisis la valeur de couleur hexa, je souhaite enregistrer la même valeur de couleur hexa que notre couleur rose. C' est ce que je fais ici. Maintenant, définissons le fichier et exécutons ce code dans mon terminal. Mais avant de définir ce code, je pense avoir fait une erreur car cela m' indique un avertissement. Oui, je pense que j'ai oublié de fournir un CBA entre ces deux paramètres. C'est notre problème. Après avoir défini ce fichier, si je reviens à ma section de fonctions, que je choisis la couleur, que je définis à nouveau ce fichier et que je lance ce code dans mon terminal, maintenant si je trace une ligne, comme vous pouvez le voir, par défaut, couleur de notre épingle est le noir. Maintenant, si je clique sur ce bouton de couleur, cela ouvre une boîte de dialogue de sélection de couleur, et à partir de là, je veux sélectionner couleur verte, et j'appuie sur OK Maintenant, si je trace une ligne, comme vous pouvez le constater, maintenant c'est la ligne de couleur verte. Si je change de couleur, si je passe au rouge et que je regarde ce fichier et que j'essaie tracer cette ligne, vous pouvez voir le résultat. Nous sommes maintenant en mesure de tracer une ligne de différentes couleurs. Ensuite, nous allons travailler sur cette fonction. Nous allons définir la taille du laiton. Par défaut, nous avons dit laiton taille 3, mais je veux augmenter la taille du pinceau, sinon diminuer la taille du soutien-gorge . Revenons-en au code. Je vais tuer ce terminal et revenir au code et je vais commencer à travailler sur cette fonction, changer la taille du laiton. Comme vous pouvez le voir, nous définissons une fonction qui prend une seule valve en argument. Et dans cette fonction, nous devons mettre à jour la taille du pinceau chaque fois que le curseur est déplacé Et comme vous le savez, dans notre commande, nous appelons cette fonction. Chaque fois que notre curseur se déplace, il envoie automatiquement valeur du curseur à la variable val Nous n'avons rien à faire pour cela. Nous avons donc ce slider. Maintenant, en fonction de la valeur du curseur, nous allons créer la fonction Donc, dans un premier temps, nous devons déplacer le PasQR et rendre la taille de notre pinceau globale Certains types sont de taille globale et en laiton. Ensuite, je vais définir la taille du pinceau, taille du laiton égale à, je vais exécuter la fonction int, int, et dans le pinceau d'exécution, je vais passer la variable val, l'argument Val Val, c'est ça. 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 reviens sur le canevas et que je trace une ligne de couleur noire. Maintenant, je veux augmenter la taille du trait en laiton. Je vais augmenter le curseur, je vais en faire six Maintenant, si je trace une ligne, vous pouvez maintenant remarquer le trait de ligne. Je suis beaucoup plus épais que le précédent. Maintenant, si j'en fais dix, maintenant c'est plus épais que ça. De même, si je réduis la valeur, si j'en fais une, une seule, puis que je trace une ligne, vous pouvez constater le résultat. Maintenant, il est beaucoup plus épais que la taille quatre , car maintenant notre coup de pinceau ne fait qu'un. De même, si je l'augmente jusqu'aux niveaux supérieurs 20 puis que je trace une ligne, vous pouvez voir le résultat. Voici donc comment nous pouvons modifier la taille du trait de pinceau et la couleur du pinceau. C'est donc tout pour ce tutoriel. Dans la partie suivante de ce didacticiel, nous allons apprendre comment dessiner un rectangle et un cercle en ligne droite. Et dans la dernière partie de ce didacticiel, nous allons apprendre comment effacer la zone du canevas. Nous allons également apprendre comment enregistrer notre dessin à l'aide du bouton Say. Merci donc, nous regardons cette vidéo pour le prochain chapitre. 6. Travailler sur la fonction pour dessiner différentes formes géométriques: Bonjour, les gars. C'est bon de te revoir. C'est l'autre partie de ce didacticiel, et dans ce didacticiel, nous allons travailler sur des formes telles que le cercle, rectangle, la ligne, etc. Comme vous pouvez le voir sur nos boutons, j'utilise ici la fonction Lambda, une fonction linéaire et nous définissons les variables ligne, rectangle et cercle Chaque fois que nous appuyons bouton, le bouton en question , tel que Line , glisse la ligne et transmet la variable de la ligne de fonction sectorielle Maintenant, en fonction des variables telles que la ligne rectangle, sinon le cercle, nous devons dessiner les formes. Pour cela, nous devons passer à la fonction de dessin. Et ici, nous devons parler de la condition LC. Permettez-moi de vous montrer comment l'IA prend soin de l'outil en ligne, en rectangle, sinon en cercle, puis à l'intérieur de l'ellipse ici, je vais définir une autre condition Tapez I aperçu de la forme, forme, aperçu, puis dans la condition IP, je vais définir, point du canevas, supprimer le point du canevas, dtm, supprimer, et je veux supprimer l'aperçu de la forme Aperçu de la forme. Dans un premier temps, il va vérifier si l'utilisateur sélectionne un outil de forme entre un rectangle linéaire et un cercle, dans ce cas, il supprimera l'ancienne forme d'aperçu. Dans notre condition IP, ici j'ai dit I shape review, puis dans cette condition P, nous supprimons l'ancienne forme d'aperçu. Ensuite, je vais définir une autre condition IP si l'outil actuel est égal à la ligne, puis dans cette condition IP, ici, je vais taper shape review now shape review become Canvas point create line function, donc nous allons créer une ligne. Ici, nous définissons d'abord le point de départ, le point de départ X et le point de départ Y, puis nous définissons la position actuelle de la souris. Événements et événement Y. Ensuite , nous utilisons la couleur de peinture, la couleur actuelle de l'épingle que nous indiquons ici, nous définissons la ligne avec la taille exacte du laiton Ensuite, le courant L deux est égal à un rectangle, puis à l'intérieur du bloc LC, ici, nous devons lier la révision de la forme. Maintenant, la revue de forme devient un point Canvas , crée un rectangle, crée une fonction de rectangle, et nous devons définir la position de départ du rectangle, également pour définir la position finale du rectangle. Ensuite, pour le contour, nous utilisons la couleur de la peinture et pour la largeur du rectangle et pour la largeur du trait du rectangle, nous utilisons la taille du laiton. Et nous devons faire de même pour le cercle. C, outil actuel égal au cercle, puis à l'intérieur de la condition EIP Aperçu de la forme égal au point Canvas create Oval. En utilisant Canvas create Oval, nous pouvons créer des circuits. Nous définissons ici la position de départ et la position finale de notre contour ovale est de couleur épingle pour le trait, nous utilisons la taille exacte du soutien-gorge. Ici, nous créons ce chien pour la forme. Il va afficher l' aperçu pendant que nous faisons glisser le pointeur. Maintenant, définissons le fichier et exécutons ce code dans mon terminal voir s'il fonctionne correctement ou non. Donc, pour exécuter ce code dans mon terminal, je vais sélectionner la ligne deux. Après avoir sélectionné la ligne, si j'essaie de tracer une ligne de ce point à ce point, oui, cela trace la ligne, mais il n'y a pas de problème. Lorsque je relâche ma souris et que j' essaie de tracer une autre ligne, elle supprime la première ligne. C'est aussi le paradis des rectangles. Laisse-moi te montrer. Si j'essaie de dessiner un rectangle et qu'il le dessine avec succès, mais que lorsque je relâche ma souris et que j'essaie de dessiner un autre rectangle, le précédent est supprimé. Comme il fait la même chose pour ce circule. Si je dessine une autre forme, elle supprime la précédente. En gros, il donne un aperçu de la forme en temps réel, mais il ne définit pas la forme de façon permanente. C'est là le problème. Pour résoudre ce problème, nous devons travailler, nous devons travailler sur cette fonction. Laisse-moi te montrer. Arrête, dessine. Nous avons déjà créé la fonction. C'est un événement qui fonctionne. Ainsi, lorsque nous relâchons nos voitures, lorsque nous relâchons notre droite, cela arrête de dessiner et finalise la forme du dessin Ici, dans cette fonction, je vais supprimer le mot clé Pusky et je vais global le type de variable d' de forme d'aperçu de forme aperçu de forme d'aperçu de forme global d' aperçu de forme Je vais rester là en état P. Si l'outil actuel EP l'outil actuel trouve à l'intérieur de la ligne, du rectangle et du cercle, puis dans cette condition IP, puis dans cette condition IP, je veux taper, je vais appeler une méthode, dessiner, dessiner à l'intérieur des tours , du rectangle et du cercle, puis dans cette condition IP, puis dans cette condition IP, je veux taper, je vais appeler une méthode, dessiner, , je passe l'événement Évènement Je vais finaliser la forme. Puis façonnez, révisez, façonnez, révisez, ne devenez rien. C'est ça. Je vais régler ce cinq. La fonction de dessin au ruban est appelée lorsque l'utilisateur relâche le bouton de la souris et que ses mouvements finalisent la forme, le rectangle et la forme du cercle Comme vous le savez, lorsque nous faisons glisser la souris, nous affichons une forme d'aperçu Mais la forme d'aperçu n' est pas la forme finale et la forme d'aperçu est supprimée à chaque instant. Cette fonction va enfin prendre forme. un premier temps, dans cette fonction, nous accédons à la revue de forme à l'aide d'une variable globale. Il stocke donc l'identifiant dans la forme d'aperçu visuel actuelle. Nous devons reformuler, sinon retirez-la après le dessin de la forme finale Ensuite, nous utilisons les conditions IP si l' outillage actuel est un rectangle et un cercle Nous ne finalisons les formes que lorsque l'utilisateur utilise Shape. N'oubliez pas que la main libre et la gomme n'ont pas besoin Leur vie est déjà tracée de façon permanente pendant le dragging. Ensuite, à l'intérieur, nous appelons la fonction de dessin. Comme vous le savez, dans cette fonction, nous réglons définitivement la teinte. Ensuite, nous avons réinitialisé la variable d'aperçu. Forme PV égale à zéro. Maintenant, après avoir défini ce fichier, si j'exécute ce code dans mon terminal et que j'essaie de dessiner un rectangle, laissez-moi vous montrer où je dessine un rectangle et je vais dessiner un autre rectangle. Maintenant, vous pouvez remarquer qu'il ne faut pas fouiller dans notre aperçu précédent. Maintenant, il enregistre définitivement la teinte. Ici, je trace quelques cercles et maintenant je vais tracer une ligne. Maintenant, si je change la taille du pinceau et en fonction de la taille du pinceau, le trait de ligne sera tracé. Pareil pour ce circuit. Vous pouvez maintenant remarquer que notre trait de cercle est plus épais que le précédent et qu'il en va de même pour le rectangle. Dans la prochaine partie de ce tutoriel, nous allons travailler sur Pier et enregistrer. Comment pouvons-nous entretenir cette fenêtre après avoir cliqué sur ce bouton. Nous allons également apprendre comment définir l'image de façon permanente à l' aide du bouton Enregistrer. Merci d'avoir regardé cette vidéo, restez connectés pour notre prochain tutoriel. 7. Travailler sur le bouton Enregistrer et Effacer: Bonjour, les gars. C'est bon de te revoir. Encore une fois, je suis de retour avec un autre chapitre, le projet RelatateO, et dans cette section, nous allons apprendre comment effacer notre fenêtre après avoir dessiné quelque chose dans notre fenêtre, et nous allons apprendre comment enregistrer notre dessin à l' aide du bouton Enregistrer Après avoir dessiné quelque chose dans notre toile, si nous appuyons sur le bouton Effacer, je veux effacer cette fenêtre. Commençons et voyons comment nous pouvons le faire. Je reviens donc à mon code, je vais définir une autre fonction, et le nom de notre fonction est ear Canvas, certain type D ear Canvas à l'intérieur de la fonction. Ici, je vais taper Canvas point, supprimer toutes les méthodes. Méthode de suppression des points du canevas, supprimez. Dans la rondeur et dans les codes doubles, je vais tout passer Cette fonction efface complètement tout ce qui est dessiné sur le canevas Kinker En gros, tout est une balise spéciale dans Canvas, et lorsque nous utilisons la date, elle supprime tous les éléments du canevas, tels que la ligne, la forme, images, le texte, tout ce qui est dessiné ou ajouté à notre toile. Ensuite, je vais lancer un commentaire d'une seule ligne. Cette fonction, cette fonction est utilisée pour les dessins d'engrenages, et je vais configurer ce fichier et exécuter ce code dans mon terminal. Une fois que j'ai exécuté ce code dans mon terminal, si je dessine quelque chose dans mon canevas et que j'appuie sur le bouton de déchirure, cela ne fonctionne pas. Maintenant, après avoir défini cette fonction, nous devons appeler cette fonction. Nous devons associer cette fonction à ce bouton auriculaire en particulier. C'est notre bouton auriculaire et après le texte ici, je vais le définir pour définir le paramètre de commande, commande égale à la fonction correspondante de Canvas. Et je vais reconfigurer ce fichier. Après avoir défini ce fichier, si j'exécute ce code dans mon terminal et que je dessine quelque chose dans notre canevas, comme une ligne, un rectangle, un cercle, une main libre, peu importe. Ensuite, si j'appuie sur le bouton Effacer, comme vous pouvez le voir, la zone du canevas est effacée. D'un coup de pied, tout est réglé. Notre bouton fonctionne donc bien. C'est brusque que nous devons travailler sur le bouton de réglage. Quoi que nous dessinions dans cette zone, nous devons le définir comme du pin. Revenons au code et commençons à coder. Je vais donc définir ici une nouvelle fonction. Ici, je vais taper Dave et le nom de notre fonction est sap Canvas. Ensuite, dans cette fonction, je veux utiliser le bloc try and accept. Essayez Try dans le triblog. À l'intérieur du triblog, nous devons obtenir la position sur le canevas Tout d'abord, nous devons obtenir la position du canevas à l'écran. Je veux dire la position exacte de la toile. Dans un premier temps, nous devons extraire les Xxs de départ et les YX de départ Ensuite, nous devons extraire les terminaisons Xs et YxS. Notre point X de départ est X égal au point racine des informations de la fenêtre, soulignons la racine X, concaténé avec Canvas point win info x. Ensuite, à l'intérieur de ce bloc sec, nous devons d'abord extraire la position de notre toile et la position Y de notre toile Ensuite, nous devons extraire la largeur de cette toile et la hauteur de cette toile. Pour extraire la position de ce canevas, je vais définir une variable appelée X. X équivalent à M type, root, point Win info root x. Round, maintenant que fait Win info root x ? Elle renvoie la position X de la fenêtre Kinted à l'écran. Ensuite, je veux concaténer avec, puis je vais concaténer avec Canvas, Canvas point, Window in four, win info X. Maintenant, puis je vais concaténer avec Canvas, Canvas point, Window in four, win info X. Maintenant, que retourne-t-il ? Il s'agit de la position du canevas à l'intérieur de la fenêtre et l'ajout de la valeur vous donne la position réelle du canevas à l'écran. De la même manière, nous devons extraire la position Y. La ligne suivante tapez Y égal à la racine, informations de la fenêtre du point racine, la racine Y, et j'ajoute les informations de la fenêtre du canevas Y. Cela fournira-t-il la position réelle de notre canevas à YxS ? Ensuite, après cela, nous devons calculer la coordonnée X du côté. Je veux dire Canvas Weed. Donc, ici X un, je vais définir une variable appelée X égale à X does canvas point info With function. Cette fonction renvoie la largeur de ce canevas. Et si je fais une concatène avec la position, cela nous donnera la largeur réelle de cette zone de toile Je veux dire en l'ajoutant avec X, p la coordonnée X en bas à droite. Supposons que ce soit notre canevas, et ici nous devons prendre cette capture d'écran du canevas. Notre canevas part de ce point, ce point actuel et de sa fin à ce point. Nous avons donc d'abord besoin de la position de X et C ce point, puis position de X et C par rapport à ce point. X un représente la position de ce point. la même manière, nous devons extraire la position Y de ce point. Pour cela, je taperais Y un égal à Y plus Canvas point info, win info underscore height Cette fonction indiquera la hauteur de la toile. Si nous ajoutons avec YxS, cela renverra la position de la coordonnée Y en bas à droite du canevas Nous avions maintenant les coordonnées et nous devons définir cette image. Pour cela, le chemin du fichier, le chemin du fichier, le fichier, UnderscoePat, le chemin du fichier est égal à, et ici je vais ouvrir une boîte de dialogue de fichier Certains types de boîte de dialogue de fichier, point de dialogue de fichier. Demandez le nom du fichier de sauvegarde. Demandez le nom du fichier de sauvegarde. Et je vais fournir l'extension par défaut. Certains tapez l'extension par défaut, et je veux enregistrer le fichier dans un fichier PNG. Format PNG, PNG à points. Ensuite, virgule, virgule, nous devons fournir les types de fichiers, les types fichiers, les types de fichiers égaux à l'intérieur du carré ss et définir les types de fichiers À l'intérieur des rondelles, en gros, je veux montrer uniquement les fichiers PNG, des fichiers PNG en général Puis une virgule, puis une virgule, nous devons redéfinir l'extension Il peut s'agir de n'importe quel nom avant qu'il ne commence d' une étoile de type PNG. Cela signifie que s'il y a un autre fichier PNG dans ce dossier, il affichera tous les fichiers PNG de ce dossier. En gros, cette variable va demander à l'utilisateur où enregistrer l'image. Tout d'abord, il demande à l'utilisateur de le classer. Assurez-vous ensuite que l'extension par défaut est PNG. Ensuite, il filtrera les fichiers et n'affichera que les images PNG dans cette fenêtre. Ensuite, à l'intérieur de ce bloc de tri, je vais définir les conditions. Ici, je vais indiquer le chemin du fichier I, puis dans cette condition IP, saisir une image, une capture d'image, un point de capture d'image, un point de capture d'image, une méthode de capture. Attrapez. S'il y a un nom de fichier alors dans cette condition IP, je vais récupérer une image sur le Canvas. J'utilise la méthode de capture d'image, puis à l'intérieur des ronds puis des accolades rondes, puis après ce point, méthode de recadrage, le recadrage par points, nous devons passer le X, le point de départ et le point final de notre écran D'où nous voulons prendre une capture d'écran. Dans le dessous, on peut lire X, Y, X un, X une virgule, Y un, Y un. Je veux enregistrer ce type de fichier par points et c'est le chemin du fichier rond, le chemin du fichier. Je vais configurer ce fichier. S'il n'y a pas de chemin de fichier, il va prendre cette capture d'écran. Ensuite, il va prendre cette capture d'écran et définir dans ce chemin de fichier particulier. Après cela, je veux afficher le message de réussite. Tapez donc ce message de réussite. boules de messages affichent les informations, définies avec succès, et dans la chaîne F, je vais passer Canvas Seb comme chemin de fichier particulier Ensuite, l' exception quitte l'exception sous la forme E, et je souhaite afficher un message d'erreur. Boîte de message point afficher une boîte de message d'erreur point afficher une erreur Erreur Seb Chaîne égale au nombre exact de fautes d'erreur. Donc, s'il y a une erreur lors de la définition de ce fichier, il affichera un message d'erreur dans cette boîte de message, ce pied d'erreur. Et je vais configurer ce fichier. Maintenant, après avoir défini ce fichier , lancez le code dans notre terminal. Je vais configurer ce fichier. Après avoir défini ce fichier, je vais appeler cette fonction safe function canvas dans ce bouton en particulier. Tapez donc command. Voici donc notre bouton de configuration, Heyman, commande égale au nom de notre fonction, set Canvas Je vais mettre une virgule dans ce fichier. Après avoir défini ce fichier, si j'exécute ce code dans notre terminal et que j'essaie de dessiner quoi que ce soit, si je change de couleur, si je le fais un peu rouge, puis que je trace une autre ligne si je dessine un cercle, un rectangle, une ligne, encore une fois, à main levée, puis appuyez sur le bouton Enregistrer. Comme vous pouvez le voir, il ouvre une boîte de dialogue de fichier et je souhaite placer ce fichier dans le dossier du document. Celui-ci. Comme vous pouvez le voir, par défaut, enregistrez sous forme de fichier PNG et je veux le nommer Demo one, Demo one, Demo underscore one, demo one dot png Si je clique sur le bouton Sap et après avoir défini ce fichier, vous pouvez voir ici un message de réussite Sf successful Canvas set as at this location, Demo one. Maintenant, si j'ouvre le dossier, laissez-moi vous le montrer. Ainsi, si j'ouvre ce dossier, vous pouvez remarquer l'image ici. Ils en soulignent un. Il s'agit de l'image PNG que nous créons à partir de ce canevas. J'espère que maintenant le concept est clair pour vous, comment dessiner à main levée, comment dessiner des lignes, comment dessiner des rectangles, des cercles, comment nous pouvons les supprimer à l'aide d'une gomme, comment nous pouvons changer la couleur de notre peinture Cela peut être n'importe quelle couleur, comment effacer cette fenêtre et comment définir ce fichier, et nous apprenons également comment modifier la taille du laiton. Ce projet est un très bon projet pour comprendre le concept d'application de dessin. J'espère que c'est maintenant clair pour vous, merci d'avoir regardé cette vidéo, restez connectés pour notre prochain projet.