Wieso ist es so verbreitet, eine Klasse Anwendung zu haben, die von tk.Tk erbt? Welchen Mehrwert hat das gegenüber der Variante, dass Objekte der Klasse Anwendung ein Attribut fenster halten, das ein tk.Tk ist?
Grüße
Erben von tk.Tk
Nun, es ist auf jeden Fall eine nicht komplett unübliche Variante, ein Tkinter-Programm zu schreiben.
Hier zuletzt gesichtet: viewtopic.php?f=18&t=40957#p312734
Frage bleibt: Welchen Vorteil hat die Vererbung hier gegenüber dem Halten als Attribut?
Hier zuletzt gesichtet: viewtopic.php?f=18&t=40957#p312734
Frage bleibt: Welchen Vorteil hat die Vererbung hier gegenüber dem Halten als Attribut?
PS: Die angebotene Summe ist beachtlich.
-
- User
- Beiträge: 1715
- Registriert: Freitag 31. Juli 2015, 13:34
Es ist einfach so, dass man aus einer GUI keinen globalen Wust machen sollte, sondern die übersichtlich gliedern sollte, also für jedes Container Widget eine Klasse. Warum sollte man da dann bei der Applikationsklasse eine Ausnahme machen, nur weil es die Applikationsklasse ist?Üpsilon hat geschrieben:Wieso ist es so verbreitet, eine Klasse Anwendung zu haben, die von tk.Tk erbt? Welchen Mehrwert hat das gegenüber der Variante, dass Objekte der Klasse Anwendung ein Attribut fenster halten, das ein tk.Tk ist?
Grüße
-
- User
- Beiträge: 1715
- Registriert: Freitag 31. Juli 2015, 13:34
Also man kann auch völlig nicht verbreiteten Code schreiben.Üpsilon hat geschrieben:Wieso ist es so verbreitet, eine Klasse Anwendung zu haben, die von tk.Tk erbt? Welchen Mehrwert hat das gegenüber der Variante, dass Objekte der Klasse Anwendung ein Attribut fenster halten, das ein tk.Tk ist?
Grüße
Das ist zum Beispiel verbreiteter Code:
example.py
Code: Alles auswählen
# -*- coding: utf-8 -*-
try:
import tkinter as tk
except ImportError:
import Tkinter as tk
class Application(tk.Tk):
def __init__(self,**kwargs):
tk.Tk.__init__(self,**kwargs)
self.minsize(260, 125)
# widget definitions ===================================
self.entry = tk.Entry(self)
self.entry.place(y='24', x='67')
self.label = tk.Label(self,text='label')
self.label.place(y='24', x='8')
self.button = tk.Button(self,text='button')
self.button.place(y='69', x='161')
if __name__ == '__main__':
Application().mainloop()
mycode.py
Code: Alles auswählen
config(**{'minsize': '260 125'})
Entry('entry').place(y='24', x='67')
Label('label',**{'text': 'label'}).place(y='24', x='8')
Button('button',**{'text': 'button'}).place(y='69', x='161')
Code: Alles auswählen
import DynTkInter as tk
tk.Tk().mainloop('mycode.py')
Code: Alles auswählen
config(**{'minsize': '260 125'})
Entry('entry').place(y='24', x='67')
Label('label',**{'text': 'label'}).place(y='24', x='8')
Button('button',**{'text': 'button'}).place(y='69', x='161')
exportApplication('example.py')