Canvas , que significa tela em chinês, corresponde a uma área retangular no módulo Tkinter, proporcionando aos usuários espaço para desenho. Eles podem colocar gráficos, texto, elipses ou botões e outros componentes na tela, podendo também pintar padrões,
Antes de usar o componente Canvas, devemos primeiro aprender seu sistema de coordenadas de tela correspondente.
Geralmente usamos pixels como unidades para imagens em computadores, e cada pixel possui 2 valores. No componente Canvas, as coordenadas do canto superior esquerdo da janela correspondente são (0,0), o que significa que no sistema de coordenadas retangulares planas. Os eixos xey correspondentes são ambos 0, e as coordenadas do canto inferior direito da janela são os dois valores máximos do eixo x e do eixo Y, conforme mostrado na figura:
Quando colocamos componentes na tela Canvas, devemos garantir que as coordenadas dos componentes estão corretas.
A estrutura de sintaxe do Canvas é:
my_canvas=Canvas(classe pai, opcional)
A classe pai é o nome da janela da camada superior que colocamos. As opções incluem bd, bg, continuar, cursor, altura, largura, cor de destaque, relevo, região de rolagem, etc. em muitos detalhes aqui.
Existem muitas maneiras de desenhar gráficos usando o componente Canves, incluindo create_line, create_rectangle, create_oval, create_arc e create_polygon. Iremos apresentá-los um por um abaixo.
O formato da sintaxe é o seguinte:
canvas.create_line(x1,y1,x2,y2,...,xn,yn,opções)
Podemos usar este método para desenhar uma linha reta entre dois ou n pontos na tela. As duas primeiras coordenadas (x1, y1) são o ponto inicial e (xn, yn) são o ponto final.
O código é o seguinte:
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()
O efeito é mostrado na figura:
As coordenadas que selecionamos são (30,30)->(100.200)->(200.200)->(300.300). Com base nas coordenadas acima, desenhamos a imagem acima.
A sintaxe para criar um retângulo é:
canvas.create_rectangle(x1,y1,x2,y2, opcional)
O retângulo precisa apenas de 2 coordenadas para ser determinado, então precisamos apenas das coordenadas (x1, y1) e (x2, y2) do canto superior esquerdo e do canto inferior direito.
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()
A operação é conforme mostrado na figura:
O formato da sintaxe é o seguinte:
canvas.create.oval(x1,y1,x2,y2,opcional)
As posições correspondentes às quatro coordenadas são mostradas na figura:
O formato da sintaxe é o seguinte:
canvas.create_arc(x1,y1,x2,y2,start=ângulo,extent=largura,opcional)
Dentre elas, as coordenadas correspondem à elipse da figura acima. O valor em início corresponde ao ângulo inicial do arco e a extensão corresponde à faixa de ângulo no sentido anti-horário do arco.
O código é o seguinte:
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,start=0,extent=120,fill='blue')self.canvas.pack()tkinter.mainloop()m=TK()
A operação é conforme mostrado na figura:
O formato da sintaxe é o seguinte:
canvas.create_polygon(x1,y1,x2,y2,...xn,yn,opcional)
Cada coordenada corresponde a uma posição, a primeira é o primeiro vértice, que são vinculados em sequência, e a última coordenada fecha automaticamente o polígono.
O código é o seguinte:
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='vermelho')self.canvas.pack()tkinter.mainloop()m=TK()
O diagrama de execução é o seguinte:
Você pode desenhar os gráficos desejados alterando as coordenadas. Os parâmetros opcionais incluem traço, contorno, som e largura.
Podemos desenhar vários padrões através do canvas. Claro, ele também tem outras funções.