next up previous contents index 6264666870
Next: 6.4 Canvas und Turtle Up: 6. Tk_Intern: Canvas Previous: 6.2.5 Das all und   Contents   Index

6.3 Weitere Canvas-Items

Auf dieselbe Art und Weise können Sie mit den noch fehlenden Items vorgehen. Grundsätzlich haben alle die folgenden Methoden den Aufruf

Canvasinstanz.methode(fromX,fromY,toX,toY,optionen(optional))
Methoden, die nach diesem Prinzip arbeiten sind:

Canvases, die irgendetwas setzen und in der Form

Canvasinstanz.methode(X,Y, optionen)
aufgerufen werden, sind

Wenn ein Photo in das Canvas eingebracht werden soll, erzeugen Sie sich zuerst eine Instanz der Klasse PhotoImage in der Form

photo=PhotoImage(file='filename')
wobei mit filename der vollständige Pfad als Name und als String angegeben werden muss. Das Setzen des Photos erfolgt nun mit der Methode create_image in der Form

Canvasinstanz.create_image(X,Y, image=photo, anchor=NW)
Die Option image ist natürlich notwendig, um die eben erzeugte Photoinstanz an die Methode zu binden. Der anchor ist eine Angabe in »Himmelsrichtungen«. Der Wert NW sagt, dass die obere linke Ecke (Nordwesten) an die Position $(X,Y)$ gesetzt werden soll.

Die anderen beiden Canvases arbeiten genauso. Nur, statt image wird bei create_window die Option window benötigt und bei create_text die Option text='irgendwas', wobei »irgendetwas« natürlich der Text sein soll, der dargestellt wird.

Statt diese Items nun noch einzeln durchzugehen und festzustellen, dass wir ohnehin nicht viel Neues dabei lernen, hier ein Beispielprogramm:

#file: canvas1.py

from Tkinter import *

canvas=Canvas(width=400, height=400, bg='white')

canvas.pack()

item_a=canvas.create_line(200,200,300,300, width=3, fill='blue') 

print item_a

for i in range (50,100,2):

canvas.create_line(10,i,50,i)

item_b=canvas.create_oval(50,50,200,200, width=2, fill='red')

print item_b

item_c=canvas.create_oval(70,170,150,250, width=2, fill='yellow')

print item_c

canvas.create_rectangle(300,300,350,350, width=4, outline='magenta', 

fill='blue') # in eine Zeile!

canvas.create_arc(10,300,70,360, fill='green')

photo=PhotoImage(file='guido.gif')

canvas.create_image(200,0, image=photo, anchor=NW)

widget=Label(canvas,text='I am a lumberjack', fg='white', bg='black')

widget.pack()

canvas.create_window(120,100, window=widget)

canvas.create_text(300,50, text='I am OK')

canvas.create_polygon(200,200,300,200,300,250, fill='blue', 

stipple='gray25') # in eine Zeile!

Das Ergebnis dieses Programms zeigt die Abbildung [*]
Figure: Verschiedene Canvases
\includegraphics{/home/heikos/lyx/informatik/tkinter/canvas1.eps}

. Mit der Option stipple können Patterns eingespielt werden. Dazu später mehr.


next up previous contents index 6264666870
Next: 6.4 Canvas und Turtle Up: 6. Tk_Intern: Canvas Previous: 6.2.5 Das all und   Contents   Index
Heiko Schroeder 2003-03-23