next up previous contents index 6264666870
Next: 6.6 Canvas und Events Up: 6. Tk_Intern: Canvas Previous: 6.4 Canvas und Turtle   Contents   Index

6.5 Canvas und Scrollbars

Um eine Scrollbar in Y-Richtung anzudocken, müssen die folgenden Schritte durchgeführt werden:

  1. Es muss im Canvas mit der Option scrollregion der scrollbare Bereich des Canvas festgelegt werden. Der Option scrollregion wird dabei die linke obere Ecke des Canvas und die rechte untere Ecke als 4-Tupel angegeben, also scrollregion=(fromX, fromY, toX, toY).
  2. Mit dem Konstruktor Scrollbar() wird eine Scrollbar erzeugt.
  3. Das Canvas hat ein Attribut mit dem Namen yview. Dieses muss der Scrollbar als command-Option übergeben werden, um die Scrollbar mit dem Canvas zu verbinden. Der Befehl lautet also: scrollbarInstanz.config(command=canvasInstanz.yview)
  4. Alle Befehle, die von der Scrollbar kommen, müssen natürlich vom Canvas ausgewertet werden. Die Scrollbar weiss durch den vorhergehenden Schritt, an welches Canvas sie die Befehle absetzen soll, aber das Canvas weiss natürlich noch nicht, von welcher Scrollbar es die Befehle auswerten soll. Das Attribut set der Scrollbarinstanz muss dem Canvas als Option yscrollcommand übergeben werden und zwar in der Form canvasInstanz.config(yscrollcommand=scrollbarInstanz.set).
  5. Zum Schluss müssen sowohl die Scrollbar als auch das Canvas gepackt werden.
Ein Beispiel:

#file: canvas3.py

from Tkinter import *

canv=Canvas(width=300, height=200, bg='blue', relief=SUNKEN)

#Gibt an, von wo bis wo der Scrollbalken laufen soll

canv.config(scrollregion=(0,0,300,1000))

canv.config(highlightthickness=0)

sbary=Scrollbar()

sbary.config(command=canv.yview)

canv.config(yscrollcommand=sbary.set)

sbary.pack(side=RIGHT, fill=Y)

canv.pack(side=LEFT, expand=YES, fill=BOTH)

canv.create_text(150,150,text='I am a lumberjack ...', fill='beige')

widget=Label(canv, text='and I am OK', fg='beige', bg='brown')

widget.pack()

canv.create_window(150,250, window=widget)

Das Ergebnis ist in dem Bild [*] zu sehen.
Figure: Canvas mit Scrollbars
\includegraphics{/home/heikos/lyx/informatik/tkinter/scrollcanvas.eps}

Wie Scrollbars in X-Richtung eingerichtet werden können, wird an dieser Stelle noch nicht beschrieben.


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