next up previous contents index 6264666870
Next: 4. Das zweite Programm Up: 3. »Hallo, Tkinter«: Das Previous: 3.1 Starten des ersten   Contents   Index

3.2 Details

from Tkinter import *:
Durch diese Anweisung wird das gesamte Containermodul Tkinter in das main-Modul des Interpreters ausgepackt. Es stehen dann alle darin enthaltenen Namen, die auf Klassen und ihre Methoden und Attribute verweisen, zur Verfügung.
root=Tk():
Die Klasse mit dem Namen Tk ermöglicht die Generierung von reinen Fenstern (windows) als Instanzen. Durch Tk() wird der Konstruktor dieser Klasse aufgerufen und generiert eine solche Instanz. Dieser wird der Name root zugewiesen.
w=Label(root text='Hallo, Tkinter'):
Ein Label ist nun mehr als ein Fenster. Es ist ein widget, was ein Kunstwort aus window und gadget bedeutet. Das Wort gadget ist Ihnen vielleicht nicht geläufig. Es bedeutet ein »Ding, das irgendwas machen kann.« Und hier liegt genau der Unterschied zum reinen Fenster. Ein widget ist ein Fenster mit einer ganz bestimmten Funktion, während ein window nur den Container für mehrere Fenster darstellt3.1. Das Label hat nun die Funktion, einen Text darzustellen3.2. Label ist selbst der Name einer Klasse, dessen Konstruktor hier aufgerufen wird, womit eine Instanz erzeugt wird, die den Namen w erhält. Der erste Parameter des Label-Konstruktors wird mit dem Namen desjenigen Fensters belegt, das das Label aufnehmen soll. Der zweite Parameter versteht sich auf den ersten Blick von selbst, enthält er doch die wesentliche Information. Technisch ist jedoch interessant, dass der Name text schon vom Konstruktor defaultmässig einem Objekt zugewiesen wurde3.3, das nun durch den String »'Hallo, Tkinter'« überschrieben wird. Wir erinnern uns daran, dass solche bereits vorbelegten Parameter nicht unbedingt angegeben werden müssen. In der Tat funktioniert das Programm auch dann, wenn nur allein root als Name übergeben wird und eine explizite Angabe des Parameters text fehlt. Probieren Sie es aus. Das Programm läuft, aber es fehlt der Text. Label hat natürlich noch etliche weitere Parameter, die aber bereits defaultmässig vorbelegt sind.
w.pack():
Der Schreibweise können Sie sofort entnehmen, dass der Packer pack eine Methode aller Instanzen der Klasse Label sein muss. Wir werden diese Methode noch genauer untersuchen. Zunächst nur soviel: der Packer gibt an, wie die Instanz in dem Containerfenster erscheinen soll. Da keine Parameter angegeben werden, ist die Erscheinung so wie standardmässig vorgegeben.
root.mainloop():
Die Methode mainloop() gehört allen Instanzen vom Typ Tk an. Es handelt sich dabei um eine Event-Schleife, die auf Mausklicks oder Tastendrücke reagiert. Ohne diese Schleife lässt sich das Programm nicht steuern. Daher muss eine solche Schleife immer vorhanden sein. Was sie genau macht, sehen wir ebenfalls später. In diesem Fall wird das Programm beendet, wenn das Fenster geschlossen wird.


next up previous contents index 6264666870
Next: 4. Das zweite Programm Up: 3. »Hallo, Tkinter«: Das Previous: 3.1 Starten des ersten   Contents   Index
Heiko Schroeder 2003-03-23