[PYTHON] Planche à dessin

Faites une planche à dessin avec Tkinter!

Quand j'ai programmé la leçon 7-3 dans le manuel dont je parlais en classe, j'ai pensé que je pourrais tracer une ligne si je faisais ce dessin en continu, mais je l'ai fait en une forme tout en enquêtant.


Différence par rapport à la leçon 7-3

――Dans le manuel, vous avez programmé pour dessiner un cercle en cliquant, mais cette fois, il est dessiné tout le temps lorsque le bouton de la souris est enfoncé. ――Pour tracer une ligne, cela devient artificiel si le cercle dessiné est grand, j'ai donc rendu possible de dessiner une ligne plus naturelle en dessinant un cercle aussi petit que possible.


Introduction au code

Je vais vous présenter le code qui a été réellement programmé.


import tkinter

def mouse_click_func(event):
    global press

    press = True

Tout d'abord, nous définissons ici le clic du bouton de la souris.


def mouse_release_func(event):
    global press

    press = False

Ensuite, définissez que vous relâchez le bouton de la souris.


def mouse_move_func(event):
    global canvas

    x = event.x
    y = event.y

    if press:
        canvas.create_oval(x - 2, y - 2, x + 2, y + 2, fill = "white", width=0)

Et enfin, nous définissons le dessin d'un cercle lorsque la souris se déplace et que le bouton est maintenu enfoncé.


En créant le code

Afin de dessiner un cercle en continu, il est nécessaire non seulement d'activer et de désactiver le bouton, mais aussi de séparer les cas de ** 3 motifs qui sont allumés et la souris bouge **. Au début, je pensais déplacer la souris tout en appuyant sur le bouton et en relâchant le bouton, mais je ne savais pas quoi faire. Donc, quand j'ai fait référence au site, j'ai été impressionné quand j'ai vu que la presse avait été jugée vraie ou fausse en activant et désactivant le bouton.


Résultat d'exécution

J'ai essayé de le faire comme un tableau noir! 2020-07-10 (3).png


Point d'amélioration 1

Si vous déplacez la souris rapidement, ce ne sera pas une ligne propre 2020-07-10 (2).png Il semble que ce soit un problème de traitement de l'ordinateur personnel. Il peut être possible de s'améliorer s'il ne s'agit pas d'une méthode pour dessiner des points en continu.


Point d'amélioration 2

Une fois que vous faites une erreur, vous ne pouvez pas l'effacer. Puisqu'il est décidé de dessiner un point en appuyant ou non sur le bouton de la souris, il n'y a pas assez de définition pour effectuer l'opération d'effacement du point. Il peut être possible d'effacer le cas si quelque chose peut être fait avant d'appuyer sur le bouton de la souris.


Impressions

C'était la première fois que j'entre en contact avec la programmation, donc il y avait des parties difficiles, mais j'ai aimé travailler dessus. Cela m'intéresse, alors je vais essayer d'y travailler volontairement.


--Référence

Créer une application graphique à l'aide de Tkinter avec python [https://daeudaeu.com/programming/python/tkinter/python_tkinter/]

La classe d'introduction Python la plus simple par Fumitaka Osawa

Recommended Posts

Planche à dessin
[python] Dessin simplifié
Racine de construction de la carte RK3399