Canvas , que significa lienzo en chino, corresponde a un área rectangular en el módulo Tkinter, que brinda a los usuarios espacio para dibujar. Pueden colocar gráficos, texto, elipses o botones y otros componentes en el lienzo, y también pueden pintar patrones.
Antes de utilizar el componente Canvas, primero debemos conocer su sistema de coordenadas de pantalla correspondiente.
Generalmente usamos píxeles como unidades para imágenes en computadoras, y cada píxel tiene 2 valores. En el componente Canvas, las coordenadas de la esquina superior izquierda de la ventana correspondiente son (0,0), lo que significa que en el sistema de coordenadas del plano rectangular. Los ejes x e y correspondientes son 0, y las coordenadas de la esquina inferior derecha de la ventana son los dos valores máximos del eje x y el eje y, como se muestra en la figura:
Cuando colocamos componentes en el lienzo Canvas, debemos asegurarnos de que las coordenadas de los componentes sean correctas.
La estructura de sintaxis de Canvas es:
my_canvas=Canvas(clase principal, opcional)
La clase principal es el nombre de la ventana de la capa superior que colocamos. Las opciones incluyen bd, bg, continuar, cursor, alto, ancho, color de resaltado, relieve, región de desplazamiento, etc. Estas opciones se introdujeron anteriormente, por lo que no las abordaré. en demasiado detalle aquí.
Hay muchas formas de dibujar gráficos usando el componente Canves, incluidas create_line, create_rectangle, create_oval, create_arc y create_polygon. Las presentaremos una por una a continuación.
El formato de sintaxis es el siguiente:
lienzo.create_line(x1,y1,x2,y2,...,xn,yn,opciones)
Podemos usar este método para dibujar una línea recta entre dos o n puntos en el lienzo. Las dos primeras coordenadas (x1, y1) son el punto inicial y (xn, yn) son el punto final.
El código es el siguiente:
importtkinterclassTK:def__init__(self):self.window=tkinter.Tk()self.canvas=tkinter.Canvas(self.window,width=300,height=300,bg='pink')self.canvas.create_line(30, 30,100,200,200,200,300,200,300,300)self.canvas.pack()tkinter.mainloop()m=TK()
El efecto es como se muestra en la figura:
Las coordenadas que seleccionamos son (30,30)->(100,200)->(200,200)->(300,300). Con base en las coordenadas anteriores, dibujamos la imagen de arriba.
La sintaxis para crear un rectángulo es:
lienzo.create_rectangle(x1,y1,x2,y2, opcional)
El rectángulo solo necesita 2 coordenadas para determinarse, por lo que solo necesitamos las coordenadas (x1, y1) y (x2, y2) de la esquina superior izquierda y la esquina inferior derecha. El código es el siguiente:
importtkinterclassTK:def__init__(self):self.window=tkinter.Tk()self.canvas=tkinter.Canvas(self.window,width=300,height=300,bg='pink')self.canvas.create_rectangle(100,100,200,200) self.canvas.pack()tkinter.mainloop()m=TK()
El funcionamiento es como se muestra en la figura:
El formato de sintaxis es el siguiente:
lienzo.create.oval(x1,y1,x2,y2,opcional)
Las posiciones correspondientes a las cuatro coordenadas son las que se muestran en la figura:
El formato de sintaxis es el siguiente:
lienzo.create_arc(x1,y1,x2,y2,inicio=ángulo,extensión=ancho,opcional)
Entre ellos, las coordenadas corresponden a la elipse en la figura anterior. El valor en el inicio corresponde al ángulo inicial del arco y la extensión corresponde al rango del ángulo en sentido antihorario del arco.
El código es el siguiente:
importtkinterclassTK:def__init__(self):self.window=tkinter.Tk()self.canvas=tkinter.Canvas(self.window,width=300,height=300,bg='pink')self.canvas.create_arc(60, 60,220,220,inicio=0,extensión=120,relleno='azul')self.canvas.pack()tkinter.mainloop()m=TK()
El funcionamiento es como se muestra en la figura:
El formato de sintaxis es el siguiente:
lienzo.create_polygon(x1,y1,x2,y2,...xn,yn,opcional)
Cada coordenada corresponde a una posición, la primera es el primer vértice, que están vinculados en secuencia, y la última coordenada cierra automáticamente el polígono.
El código es el siguiente:
importtkinterclassTK:def__init__(self):self.window=tkinter.Tk()self.canvas=tkinter.Canvas(self.window,width=300,height=300,bg='pink')self.canvas.create_polygon(150, 0,200,100,300,100,200,185,280,280,150,230,20,280,100,185,0,100,100,100,fill='rojo')self.canvas.pack()tkinter.mainloop()m=TK()
El diagrama de funcionamiento es el siguiente:
Puede dibujar los gráficos que desee cambiando las coordenadas. Los parámetros opcionales incluyen guión, contorno, profundidad y ancho.
Podemos dibujar varios patrones a través del lienzo. Por supuesto, también tiene otras funciones. También lo usaremos en los ejemplos de la siguiente sección.