• Keine Ergebnisse gefunden

Informatik Klasse 13, Foliensatz 3 Hallo Tkinter

N/A
N/A
Protected

Academic year: 2021

Aktie "Informatik Klasse 13, Foliensatz 3 Hallo Tkinter"

Copied!
8
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Informatik Klasse 13, Foliensatz 3 Hallo Tkinter

Prof. G. Kemnitz

Institut für Informatik, Technische Universität Clausthal 24. August 2009

Prof. G. Kemnitz·Institut für Informatik, Technische Universität Clausthal 24. August 2009 1/8

(2)

Experiment: Tutorial Chapter 2

1: # File: hello1.py 2: from Tkinter import * 3: root = Tk()

4: w = Label(root, text="Hello, world!") 5: w.pack()

6: root.mainloop()

1 Kommentar

2 Import der Klassen TK und Label

3 Erzeugung eines GUI- (garaphical user interface) Objekts (root widget)

4 Erzeugen eines Textfeldes (lablel widget)

5 Aufruf der Anordnungsmethode des Labels

6 Start der Ereignisschleife des GUI-Objekts

Widget: Elemente des graphischen Nutzerinterfaces

Prof. G. Kemnitz·Institut für Informatik, Technische Universität Clausthal 24. August 2009 2/8

(3)

Elternobjekt . . .

GUI-Objekt

Tatastur Mouse Ereignisse

Widet 2 (Kindobjekt)

Aufruf, wenn das zugeordnete Ereignis eingetreten ist Widet 1 (Kindobjekt) Methode f¨ur Ereignis W1.1

Methode f¨ur Ereignis W1.2 Methode f¨ur Ereignis W2.1

. . . . . .

Methode f¨ur Ereignis E.1 Methode zum Beenden

Es gibt kein Hauptprogramm, sondern nur Methoden, die bei bestimmten Ereignissen gestartet werden

GUI-Programmierung:

Zusammensetzen einer Oberfläche aus Widgets Konfiguration über Attribute

Programmieren der anwendungsspezifischen Methoden

Prof. G. Kemnitz·Institut für Informatik, Technische Universität Clausthal 24. August 2009 3/8

(4)

Experiment: Tutorial, Chapter 3

from Tkinter import * class App:

def __init__(self, master):

frame = Frame(master) frame.pack()

self.button = Button(frame, text="QUIT", fg="red", command=frame.quit)

self.button.pack(side=LEFT)

self.hi_there = Button(frame, text="Hello", command=self.say_hi)

self.hi_there.pack(side=LEFT) def say_hi(self):

print "hi there, everyone!"

root = Tk() app = App(root) root.mainloop()

Prof. G. Kemnitz·Institut für Informatik, Technische Universität Clausthal 24. August 2009 4/8

(5)

Eine Applikationsklasse besteht aus

einem Konstruktor zur Erzeugung der Widgets eigenen Methoden, die Ereignisse zugeordnet sind Oberflächen sind hierchische Objekte mit einer »enthält Teilfenster«-Relation:

Applikation »self« enthält den Rahmen »frame«

Der Rahmen »frame« enthält die Schaltflächen »self.button«

und »self.hi_there«

Das Elternobjekt ist das erste Argument im Konstruktor alle anderen Argumente im Konstruktor sind Attribute des Widget, den Werte zugeordnet werden, z.B. die Farbe

»command=Methode« bindet eine Aktion an das Ereignis

»Tastenbetätigung«

»pack()« Anordnungsmethode; für alle Widgets erforderlich

Prof. G. Kemnitz·Institut für Informatik, Technische Universität Clausthal 24. August 2009 5/8

(6)

Aufgabe 3.1: Hallo Welt

Erweitern Sie das Programm »Hallo Welt« um einen

»Button-Widget«, mit dem das Programm beendet werden kann.

Prof. G. Kemnitz·Institut für Informatik, Technische Universität Clausthal 24. August 2009 6/8

(7)

Tastenfeld zum Start von Programmen

Schreiben Sie eine Applikationsklasse mit einem Konstruktor und vier anwendungsspezifischen Methoden.

Der Konstruktor soll in einem Rahmen vier Tasten und ein Label erzeugen und untereinander anordnen.

Die insgesamt fünf Widgets sind mit »Taste 1«, »Taste 2«,

»Taste 3«, »Taste 4« und »Textfeld« zu beschriften.

Die bei Tastenbetätigung auszuführenden Methoden sollen auf der Standardausgabe den Text »Tasteigedrückt«

ausgeben (i – Tastennummer)

Prof. G. Kemnitz·Institut für Informatik, Technische Universität Clausthal 24. August 2009 7/8

(8)

Oberfläche mit Textausgabe

Mit der Methode »config« können für eine Widget nachträglich die Attribute verändert werden, z.B. für

self.Ausgabetext = Label(parent, text=’Originaltext’) der dargestellte Text

self.Ausgabetext.config(text=’neuer Text’)

Schreiben Sie das vorherige Programm so um, dass die Ausgabe zusätzlich im »Label-Widet« erfolgt.

Prof. G. Kemnitz·Institut für Informatik, Technische Universität Clausthal 24. August 2009 8/8

Referenzen

ÄHNLICHE DOKUMENTE

Erweiterung Sie die Klasse aus der Aufgabe zuvor um eine Methode, die für alle Label die Textfarbe zwischen schwarz und rot umschaltet, und einen Button, der diese Methode

Erzeugen Sie jeweils eine solche Textdatei für ein Objekt der Klasse Frame, der Klasse Entry und der Klasse Label. Vergleichen Sie

Schreiben Sie eine Textverarbeitungsanwendung mit folgender Oberfläche, bei der eingegebene Text nach Betätigung der Eingabetaste an den Text des Message-Objekts oben angehängt

Schreiben Sie eine Appliktion mit einem Tastenfeld aus vier Labeln mit den Beschriftungen »A« bis »D«, bei dem zum Programmstart die erste Taste mit »relief=SUNKEN« und die übrigen

Bei Betätigung der Icons soll im Terminal eine Beschreibung der beabsichtigten Funktion ausgegeben werden. Hinweis: Die Umwandlung in andere Bildformate

Oberfläche, das bei einem Maus-Klick ein regelmäßiges Polygon mit dem Maus-Zeiger als Mittelpunkt, einer zufällig ausgewählten Eckenanzahl n im Bereich von 3 bis 10, einem

Das aufgerufene Unterprogramm startet immer wieder einen neuen Timer; beenden mit ctrl-c.. Kemnitz · Institut für Informatik, Technische Universität

Außerdem soll diese Klasse öffentliche Readonly-Properties für diese beiden Attribute, einen öffentlichen Konstruktor und eine öffentliche Methode zum Erhöhen des Zählers haben.