Canvas , was auf Chinesisch Leinwand bedeutet, entspricht einem rechteckigen Bereich im Tkinter-Modul und bietet Benutzern Platz zum Zeichnen. Sie können Grafiken, Text, Ellipsen oder Schaltflächen und andere Komponenten auf der Leinwand platzieren und auch Muster malen.
Bevor wir die Canvas-Komponente verwenden, müssen wir zunächst das entsprechende Bildschirmkoordinatensystem lernen.
Wir verwenden im Allgemeinen Pixel als Einheiten für Bilder in Computern, und jedes Pixel hat zwei Werte. In der Canvas-Komponente sind die Koordinaten der oberen linken Ecke des entsprechenden Fensters (0,0), was bedeutet, dass im ebenen rechteckigen Koordinatensystem Die entsprechende x-Achse und die y-Achse sind beide 0, und die Koordinaten der unteren rechten Ecke des Fensters sind die beiden Maximalwerte der x-Achse und der Y-Achse, wie in der Abbildung dargestellt:
Wenn wir Komponenten im Canvas-Canvas platzieren, müssen wir sicherstellen, dass die Koordinaten der Komponenten korrekt sind.
Die Syntaxstruktur von Canvas ist:
my_canvas=Canvas(übergeordnete Klasse, optional)
Die übergeordnete Klasse ist der Name des Fensters der oberen Ebene, das wir platziert haben. Zu den Optionen gehören BD, BG, Continue, Cursor, Höhe, Breite, Hervorhebungsfarbe, Relief, Scrollbereich usw. Diese Optionen wurden bereits zuvor eingeführt, daher werde ich nicht darauf eingehen hier zu sehr ins Detail gehen.
Es gibt viele Möglichkeiten, Grafiken mit der Canves-Komponente zu zeichnen, einschließlich create_line, create_rectangle, create_oval, create_arc und create_polygon. Wir werden sie im Folgenden einzeln vorstellen.
Das Syntaxformat ist wie folgt:
canvas.create_line(x1,y1,x2,y2,...,xn,yn,options)
Mit dieser Methode können wir eine gerade Linie zwischen zwei oder n Punkten auf der Leinwand zeichnen. Die ersten beiden Koordinaten (x1, y1) sind der Startpunkt und (xn, yn) der Endpunkt.
Der Code lautet wie folgt:
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()
Der Effekt ist wie in der Abbildung dargestellt:
Die von uns ausgewählten Koordinaten sind (30,30) -> (100.200) -> (200.200) -> (300.300). Basierend auf den obigen Koordinaten zeichnen wir das obige Bild.
Die Syntax zum Erstellen eines Rechtecks lautet:
canvas.create_rectangle(x1,y1,x2,y2, optional)
Zur Bestimmung des Rechtecks benötigen wir nur 2 Koordinaten, daher benötigen wir nur die Koordinaten (x1, y1) und (x2, y2) der oberen linken Ecke und der unteren rechten Ecke. Der Code lautet wie folgt:
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()
Der Vorgang ist wie in der Abbildung dargestellt:
Das Syntaxformat ist wie folgt:
canvas.create.oval(x1,y1,x2,y2,optional)
Die den vier Koordinaten entsprechenden Positionen sind in der Abbildung dargestellt:
Das Syntaxformat ist wie folgt:
canvas.create_arc(x1,y1,x2,y2,start=angle,extent=width,optional)
Unter diesen entsprechen die Koordinaten der Ellipse in der obigen Abbildung. Der Wert in „Start“ entspricht dem Startwinkel des Bogens und „Ausdehnung“ entspricht dem Winkelbereich des Bogens gegen den Uhrzeigersinn.
Der Code lautet wie folgt:
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()
Der Vorgang ist wie in der Abbildung dargestellt:
Das Syntaxformat ist wie folgt:
canvas.create_polygon(x1,y1,x2,y2,...xn,yn,optional)
Jede Koordinate entspricht einer Position, die erste ist der erste Scheitelpunkt, die nacheinander verknüpft sind, und die letzte Koordinate schließt das Polygon automatisch ab.
Der Code lautet wie folgt:
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='red')self.canvas.pack()tkinter.mainloop()m=TK()
Das Laufdiagramm sieht wie folgt aus:
Sie können die gewünschten Grafiken zeichnen, indem Sie die Koordinaten ändern. Zu den optionalen Parametern gehören Strich, Umriss, Größe und Breite.
Wir können verschiedene Muster durch Canvas zeichnen. Natürlich hat es auch andere Funktionen. Wir werden es auch in den Beispielen im nächsten Abschnitt verwenden.