Logiciel de dessin minimaliste avec le canvas

 

GS Le widget canvas est très impressionnant dans sa conception. En moins de 20 lignes de code, on peut créer un logiciel de dessin minimaliste.

Fonctions: dessin avec le bouton gauche de la souris, réinitialisation avec un double clique sur le bouton droit et <ESC> pour quitter.

Il est très aisé d'ajouter sur cette base d'autres fonctionnalités : sélecteur de couleur, épaisseur du trait, sauvegarde, ....

 package require Tk
 bind all <Escape> {exit}

 pack [canvas .c -bg white -width 320 -height 200] -fill both -expand 1
 bind .c <ButtonPress> "DrawPix %x %y"
 bind .c <Double-3>    ".c delete all"

 proc DrawPix {x y} {
  .c create line $x $y $x $y -width 4 -fill blue -width 1 -tags pix
  bind .c <Motion>       "HandleMotion %x %y"
  bind .c <ButtonRelease> HandleRelease
 }

 proc HandleMotion {x y} {.c coords pix [concat [.c coords pix] $x $y]}

 proc HandleRelease {} {
  .c itemconfigure pix -tags {}
  bind .c <Motion>        {}
  bind .c <ButtonRelease> {}
 }

Catégorie Graphique | Catégorie Exemple