Besserer Stil: Attribute treten deutlich im Konstruktor hervor.

This commit is contained in:
Martin Putzlocher 2021-11-28 22:20:57 +01:00
parent 825caa3ba0
commit fd221aa68b

View File

@ -125,10 +125,19 @@ class FeetToMeter(Tk):
self.title("Feet to Meters") self.title("Feet to Meters")
# Textvariablen, um Inhalte der Eingabefelder zu kontrollieren
self.feet = StringVar()
self.meters = StringVar()
# Event Handler (Validator) registrieren # Event Handler (Validator) registrieren
self.check_entry_wrapper = self.register(self.validator.check_entry) self.check_entry_wrapper = self.register(self.validator.check_entry)
# Zugriff auf Stilinformationen
self.s = ttk.Style() self.s = ttk.Style()
# Zugriff auf Statusleiste
self.frame_statusbar = ttk.Frame(self)
# Aufbau des Fensters
self.create_styles() self.create_styles()
self.create_widgets() self.create_widgets()
self.bind_events() self.bind_events()
@ -157,7 +166,6 @@ class FeetToMeter(Tk):
self.rowconfigure(0, weight=1) self.rowconfigure(0, weight=1)
# Eingabefeld für Länge in feet # Eingabefeld für Länge in feet
self.feet = StringVar()
feet_entry = ttk.Entry(mainframe, width=7, textvariable=self.feet, feet_entry = ttk.Entry(mainframe, width=7, textvariable=self.feet,
validatecommand=(self.check_entry_wrapper, '%P'), validatecommand=(self.check_entry_wrapper, '%P'),
validate='key') validate='key')
@ -173,7 +181,6 @@ class FeetToMeter(Tk):
ttk.Label(mainframe, text="Meter").grid(column=3, row=2, sticky=W) ttk.Label(mainframe, text="Meter").grid(column=3, row=2, sticky=W)
# Ausgabefeld für Länge in Metern # Ausgabefeld für Länge in Metern
self.meters = StringVar()
meters_entry = ttk.Entry(mainframe, width=7, textvariable=self.meters) meters_entry = ttk.Entry(mainframe, width=7, textvariable=self.meters)
meters_entry.grid(column=2, row=2, sticky=(W, E)) meters_entry.grid(column=2, row=2, sticky=(W, E))
meters_entry.configure(state='readonly') # keine Eingabe, aber selektierbar meters_entry.configure(state='readonly') # keine Eingabe, aber selektierbar
@ -188,13 +195,12 @@ class FeetToMeter(Tk):
child.grid_configure(padx=5, pady=5) child.grid_configure(padx=5, pady=5)
# Statusbar # Statusbar
st = self.frame_statusbar
self.frame_statusbar = ttk.Frame(self) st['relief'] = 'sunken'
self.frame_statusbar['relief'] = 'sunken' st['height'] = 12
self.frame_statusbar['height'] = 12 st['style'] = 'aFrame.TFrame'
self.frame_statusbar['style'] = 'aFrame.TFrame' st.grid_propagate(0) # Feste Größe an Grid-Packer weitergeben
self.frame_statusbar.grid_propagate(0) # Feste Größe an Grid-Packer weitergeben st.grid(column=0, row=1, sticky=W + S + E)
self.frame_statusbar.grid(column=0, row=1, sticky=W + S + E)
# Setze Fokus in Eingabefeld # Setze Fokus in Eingabefeld
feet_entry.focus() feet_entry.focus()