Sunday, May 4, 2014

canvas para principiantes

Uno de los controles mas flexibles y potentes en Tcl (mas bien en Tk), es el canvas. La traducción de canvas en "lienzo" y si, el nombre ilustra fielmente lo que se puede hacer sobre el...casi cualquier cosa que te permita tu imaginación.

Que mejor que explicarlo a través de ejemplos, usando una sesión interactiva...

Primero, vamos a crear un canvas llamado .c, de esta manera:
% canvas .c -width 600 -height 600
.c

Para visualizarlo, hay que empacarlo:
% pack .c


Pongamos un par de lineas en el canvas:
% .c create line 100 0 100 500
1

% .c create line 200 0 200 500
2

A crear otras tres haciendo uso de un "for":
% for {set i 300} {$i < 600} {incr i 100} {
> .c create line $i 0 $i 500}

Ahora, completemos una cuadricula creando 5 lineas horizontales:
% for {set i 100} {$i < 600} {incr i 100} {
.c create line 0 $i 500 $i}

y que tal un circulo (a través del subcomando "oval"), en una de las celdas:
% .c create oval 100 100 200 200
15

Tambien un arco..
% .c create arc 200 200 300 300
16

un rectángulo muy cuadrado:
% .c create rectangle 310 310 390 390
17

y para terminar, agreguemos un texto:
% .c create text 410 410 -text "TclBits"
18

pero...que pasó?
esperaba verlo dentro de la cuadricula...
Ah! ya veo que el default de posición es centrado, de modo que esas coordenadas dejan una parte del texto invadiendo la celda vecina...

Veamos que pasa si cambio la posición "anclada" al este:

% .c create text 410 430 -text "TclBits" -anchor e
20

Ah! ya entendí, en realidad lo que necesitaba era "anclarla" al oeste (west):
% .c create text 410 450 -text "TclBits" -anchor w
21



Lo presentado es apenas la punta del iceberg de lo que se puede hacer con el canvas de Tk, hay algunos ejemplos en el wiki que abren una ventana a todo el potencial de este control.
por ejemplo: http://wiki.tcl.tk/4206

Mas del canvas...muy pronto.

No comments: