Ich weiss, das Thema wurd nun schon oft hier durchgekaut, aber irgendwie finde ich einfach keine richtige Lösung zu meinem Problem.
Folgendes:
In meiner GUI gibt es mehrere Frames die allesamt Instanzen von bestimmten Klassen sind. In den init-Methoden der Klassen werden verschiedene Labels angelegt, die Daten mittels einer uebergebenen Methode aus einer Datenklasse lesen und anzeigen.
Durch Benutzereingaben in einem TopLevel-Window können die Daten der Datenklasse geändert werden. Wird das TopLevel anschließend geschlossen, sollen die dargestellten Daten in den Labels der Frames aktualisiert werden.
Bsp: (o.G.)
Code: Alles auswählen
import Tkinter
class Frameklasse(object):
def __init__(self, parent, dateninst):
self.parent = parent
self.dateninst = dateninst
self.textlabel = Tkinter.Label(self.parent.root, text=' %s ' % self.dateninst.getData())
return
========================
class datenklasse(object)
def __init__(self):
self.anzeigestring = 'blablablub'
return
def getData(self):
return self.anzeigestring
def setData(self, newData):
self.anzeigestring = newData
return
========================
root = Tkinter.Tk()
dateninstanz = datenklasse()
frameinstanz = Frameklasse(root, dateninstanz)
Ich weiss, ich könnte der Frameklasse eine Methode "update", oder so implementieren, die die Labels dann rekonfiguriert
z.B.
Code: Alles auswählen
def update(self, dateninst)
self.dateninst = dateninst
self.textlabel.config( text=' %s ' % self.dateninst.getData()
return
Nach dem Schließen des Toplevels ein Update der Frames bzw. des roots mit
Code: Alles auswählen
frameinstanz.update()
Muss ich nun doch eine zentrale UpdateMethode schreiben die mir jedes Mal alle meine Frames und Labels durchackert oder gibts da noch eine bessere Lösung?
Gruß,
Simon
PS: Schönen Feiertag, wenns soweit ist!