Übersicht:

  Was ist Tkinter?
  Label-Widget
  Exkurs: Unicode
  Button-Widget
  Message-Boxen
  Aufgaben
  Tkinter-Startseite

Was ist Tkinter?

Erklären wir die Gleichung im Titel: GUI bedeutet graphical user interface, zu deutsch sind das die vielen Fenster, Buttons und Menüs, die einem heute begegnen. Will man so etwas in Python schreiben, benötigt man eine Fenster-Bibliothek, genau das leistet Tkinter! Tkinter bedeutet Tk interface, also eine Schnittstelle zu Tk, und Tk ist eine einfache Fensterbibliothek geschrieben in Tcl (eine Programmiersprache, Tcl steht für Tool command language, Tk für Tool kit). Hier ein Beispiel (in Python):

Die grafischen Elemente wie Buttons und Menüs haben einen Namen: Widget (=Window Gadget). Ein Widget hat normalerweise bestimmte Eigenschaften, im Beispiel oben etwa die Hintergrundfarbe

und bestimmte Methoden, das sind Befehle, die die Widgets "verstehen". Ein sehr wichtiger Befehl ist beispielsweise pack, mit diesem Befehl wird der Text überhaupt erst angezeigt!

<<<

Label-Widget

Das Label-Widget dient zur Beschriftung, das folgende Python-Programm erzeugt ein Label:


1    from Tkinter import *
2    root=Tk()
3    lab=Label(root,text=u"Viel Spa\xdf mit dem Tkinter-Tutorial")
4    lab.pack()
5    root.mainloop()

Erklärung:

<<<

Button-Widget

Buttons sind zum Klicken da, in Tkinter geht das so:


1    from Tkinter import *
2    root=Tk()
3    but=Button(root,text="Wo ist Tommy?")
4    but.pack()
5    root.mainloop()

Wirkung:

Erklärung:

Überlegen wir: jedes Mal, wenn auf den Button geklickt wird, soll etwas passieren, sonst natürlich nicht. Wir müssen also den Klick mit etwas verbinden, beispielsweise mit einer Ausgabe, für die Ausgabe haben wir Labels, also verbinden wir unseren Button mit der Ausgabe eines Labels. Dafür gibt es in Tkinter den command-Parameter:


1    from Tkinter import *
2    def antwort():
3        lab=Label(root,text="Hier nicht!")
4        lab.pack()
5
6    root=Tk()
7    but=Button(root,text="Wo ist Tommy?",command=antwort)
8    but.pack()
9    root.mainloop()

Erklärung:

Jetzt drücken wir mehrmals auf den Button, aber überzeugend, na ja, für den Anfang . . .

<<<

Message-Boxen

Was wir brauchen, sind natürlich Messsage-Boxen:

Und wie geht das in Python? Einfach ein Zweizeiler:


1    import tkMessageBox
2    tkMessageBox.showinfo('Hier nicht!','Hier auch nicht!')

Erklärung:

Welche Message-Boxen ausser showinfo gibt es noch? Hier eine kleine Übersicht:

Der Aufruf geht fast genauso wie bei showinfo, einfach ausprobieren, wir aber kommen zum Programm des Tages:


1    from Tkinter import *
2    import tkMessageBox
3    def antwort():
4        tkMessageBox.showinfo('Hier nicht!','Hier auch nicht!')
5
6    root=Tk()
7    but=Button(root,text="Wo ist Tommy?",command=antwort)
8    but.pack()
9    root.mainloop()
<<<

<<<
    W. Spiegel, Kontakt