Python Tkinter Lienzo (Canvas)

Programación GUI en Python

El widget Lienzo (Canvas) de Python Tkinter, al igual que el lienzo en HTML5, se utiliza para dibujar. Puede colocar gráficos, texto, widgets o marcos en el lienzo.

Sintaxis

El formato de la sintaxis es el siguiente:

w = Canvas ( master, option=value, ... )
  • master: el contenedor padre del botón.

  • options: opciones disponibles, es decir, las propiedades configurables del botón. Estas opciones pueden establecerse en forma de clave = valor, separadas por comas.

N.º Opciones y descripción
1

bd

Ancho del borde, en píxeles, por defecto 2 píxeles.

2

bg

Color de fondo

3

confine

Si es true (por defecto), el lienzo no puede desplazarse fuera del área desplazable.

4

cursor

Configuración de la forma del cursor, como arrow, circle, cross, plus, etc.

5

height

Altura

6

highlightcolor

Color de resaltado

7

relief

Estilo del borde, valores opcionales: FLAT, SUNKEN, RAISED, GROOVE, RIDGE. Por defecto es FLAT.

8

scrollregion

Una tupla (w, n, e, s) que define el área máxima desplazable del lienzo; w es la izquierda, n es la parte superior, e es la derecha, s es la parte inferior.

9

width

El tamaño del lienzo en el eje X.

10

xscrollincrement

La cantidad utilizada para solicitar el desplazamiento horizontal.

11

xscrollcommand

Barra de desplazamiento horizontal; si el lienzo es desplazable, esta propiedad es el método .set() de la barra de desplazamiento horizontal.

12

yscrollincrement

Similar a xscrollincrement, pero en dirección vertical.

13

yscrollcommand

Barra de desplazamiento vertical; si el lienzo es desplazable, esta propiedad es el método .set() de la barra de desplazamiento vertical.

El widget Canvas admite las siguientes opciones estándar:

arc: crea un sector circular

coord = 10, 50, 240, 210
arc = canvas.create_arc(coord, start=0, extent=150, fill="blue")

image: crea una imagen

filename = PhotoImage(file = "sunshine.gif")
image = canvas.create_image(50, 50, anchor=NE, image=filename)

line: crea una línea

line = canvas.create_line(x0, y0, x1, y1, ..., xn, yn, options)

oval: crea un círculo

oval = canvas.create_oval(x0, y0, x1, y1, options)

polygon: crea un polígono con al menos tres vértices

oval = canvas.create_polygon(x0, y0, x1, y1,...xn, yn, options)

Ejemplo

En el ejemplo, al hacer clic en el botón se mostrará un mensaje:

Ejemplo

#!/usr/bin/python # -*- coding: UTF-8 -*- import Tkinter import tkMessageBox # -*- coding: cp936 -*- # Crea un rectángulo, especificando que el color del lienzo sea blanco from Tkinter import * root = Tk() # Crea un Canvas y establece su color de fondo como blanco cv = Canvas(root,bg = 'white') # Crea un rectángulo con coordenadas (10,10,110,110) cv.create_rectangle(10,10,110,110) cv.pack() root.mainloop() # Para mayor claridad, establece el color de fondo como blanco para diferenciarlo de root top.mainloop()

El resultado de la prueba es el siguiente:

Programación GUI en Python

Otras extensiones