Kapitel 17
Grafik
496
17.1.1 Generierung grafischer Elemente – ID, Positionierung
und Display-Liste
Auf einen Canvas wird ein grafisches Objekt – man nennt es auch Item – platziert, indem
man eine Methode aufruft, deren Name mit
create_ anfängt (z.B. create_line()). Die
ersten Argumente der Parameterliste definieren immer die Position auf dem Canvas. Für
create_oval(x1, y1, x2, y2
[,option1=wert1[,...]])
Erzeugt eine Ellipse an der Position
(x1, y1, x2, y2).
create_polygon(x1, y1,
...[,option1=wert1[,...]])
Erzeugt ein Polygon.
create_rectangle (x1, y1, x2, y2
[,option1=wert1[,...]])
Erzeugt ein Rechteck mit linker oberer Ecke(x1,
y1)
und rechter unterer Ecke (x2, y2).
create_text(x, y
[,option1=wert1[,...]])
Erzeugt ein Text-Objekt an der Stelle
(x, y).
create_window(x, y
[,option1=wert1[,...]])
Erzeugt auf dem Canvas ein »Fenster« an der Stelle
(x, y), in das ein beliebiges Widget eingesetzt
werden kann.
dchars(id, first, last)
Löscht Zeichen aus dem spezifizierten Text-Item
von Zeichen
first bis Zeichen last.
delete(id)
Löscht das spezifizierte Item.
find_all()
Liefert eine Liste der ID-Nummern aller Items auf
dem Canvas.
find_closest(x, y)
Liefert ein Tupel, das als einziges Element die ID-
Nummer des Items enthält, das am nächsten am
Punkt
(x, y) ist.
find_overlapping(x0, y0, x1, y1)
Liefert eine Liste mit den ID-Nummern der Items,
die mit dem durch die Eckpunkte
(x1, y1) und
(x2, y2) spezifizierten Rechteck überlappen.
itemcget (id, option)
Liefert den Wert der Option option des spezifizier-
ten Items.
itemconfigure(idD
[,option1=wert1[,...]])
Wenn man die optionalen Argumente weglässt,
wird ein Dictionary mit Optionen zurückgegeben.
Ansonsten werden mit Schlüsselwortargumenten
Optionen neu gesetzt.
move(id, xAmount,
yAmount)
Das Item wird in waagrechter und senkrechter
Richtung um die Werte von
xAmount und yAmount
bewegt.
tag_bind(id, sequence=s,
func=f[,add='+'])
Bindet bei den spezifizierten Objekten eine Funk-
tion an Events. Wenn das optionale Argument
add
den String
'+' enthält, wird die neue Bindung den
bestehenden Bindungen hinzugefügt.
Methode Erklärung
Tabelle 17.1: Einige Methoden des Canvas-Widgets (Forts.)
497
17.1
Die tkinter-Klasse Canvas
Texte und Bilder ist nur ein Koordinatenpaar x, y erforderlich. Bei Ellipsen und Rechtecken
werden die vier Koordinaten der linken oberen und der rechten unteren Ecke des »Begren-
zungskastens« (bounding box) angegeben. Polygone und Linien, die aus mehreren Teilstü-
cken bestehen können, werden durch die Koordinaten der (beliebig vielen) Eckpunkte
(x0,
y0)
, (x1, y1) usw. spezifiziert.
Für die Längenangaben verwendet man ganze Zahlen (Pixel) oder Strings mit einer Zenti-
meterangabe (z.B. 3.1c für 3,1 cm). Das Koordinatensystem des Canvas hat seinen Ursprung
in der linken oberen Ecke. Beispiel:
Abb. 17.1: Koordinaten in einem Canvas
Die Display List ist eine geordnete Liste der Objekte auf dem Canvas. Wenn sich zwei
Objekte überlappen, dann ist das Objekt im Vordergrund weiter hinten in der Display List,
es hat also die größere ID-Nummer. Ein neues Item, das mit einer
create_-Methode
erzeugt worden ist, wird am Ende der Liste eingefügt, das heißt, es kommt ganz in den Vor-
dergrund. Beim Aufbau einer Grafik, die aus mehreren Elementen besteht, beginnt man
also mit dem Hintergrund und erzeugt die Objekte des Vordergrunds zum Schluss. Bei-
spiel:
from tkinter import *
fenster = Tk()
c = Canvas(fenster,width='8c', height='4c')
c.pack()
rechteck = c.create_rectangle('1c','1c','4c','3c',
fill='blue')
fenster.mainloop()
from tkinter import *
fenster = Tk()
c = Canvas(fenster,width='8c', height='4c')
c.pack()
(0, 0)
(1 cm, 1 cm)
( 4 cm, 3 cm)
(8 cm, 4 cm)

Get Python 3 - Lernen und professionell anwenden now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.