Text in Label aktualisieren die Xte
Verfasst: Mittwoch 10. Juni 2009, 14:57
Hallo zusammen!
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.)
Wie schaffe ich es nun, dass sich die angezeigten Daten im Label nach dem Schließen des TopLevels aktualisieren?
Ich weiss, ich könnte der Frameklasse eine Methode "update", oder so implementieren, die die Labels dann rekonfiguriert
z.B.
und diese dann jedes Mal aufrufen. Aber da ich sehr viele Frames und Labels habe, finde ich das nicht sehr praktisch.
Nach dem Schließen des Toplevels ein Update der Frames bzw. des roots mit
zu erzwingen bringt leider auch nichts.
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!
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!