TKinter-Label als Prozess-Log; stackt immer
Verfasst: Freitag 8. Mai 2020, 07:49
Hallo Leute,
fuer mein Programm moechte ich ein "Prozess-Log" schreiben, wo ich einfach ueber mein Script hinweg
an wichtigen Stellen ein Text an ein Label sende, um zu sehn, dass er diese passiert hat.
Allerdings sollen manche Eintraege gestackt werden, andere sich selbst ueberschreiben.
Leider stackt er bei meiner Version einfach immer, auch wenn ich den Inhalt nicht zurueckgebe.
Hier der Code dazu, aber nur ein Ausschnitt, das Ganze ist in eine TKinter-Struktur gesetzt:
Ich hoffe ihr koennt mir da helfen.
Vielleicht geht das mit dem Label nicht und man nimmt dafuer ein anderes TKinter-Objekt?
Wenn ich das printe, siehts im Uebrigen korrekt aus. Nur im Label nicht.
Vielen Dank im Voraus
Einen angenehmen Freitag
Liebe Grueße
3cosystem
fuer mein Programm moechte ich ein "Prozess-Log" schreiben, wo ich einfach ueber mein Script hinweg
an wichtigen Stellen ein Text an ein Label sende, um zu sehn, dass er diese passiert hat.
Allerdings sollen manche Eintraege gestackt werden, andere sich selbst ueberschreiben.
Leider stackt er bei meiner Version einfach immer, auch wenn ich den Inhalt nicht zurueckgebe.
Hier der Code dazu, aber nur ein Ausschnitt, das Ganze ist in eine TKinter-Struktur gesetzt:
Code: Alles auswählen
class...
def __init__
self.var_label = tk.StringVar()
self.info_label = tk.Label(self, textvariable=self.var_label, borderwidth=2, relief="groove", width=30, height=5, bg='#64ae25', anchor=N)
def type(self, text, stack):
self.label = text
self.label_content.set(self.label)
root.update()
if stack == 1: # Den Label-Inhalt zurueckgeben
print(self.label) # hier wird bei "nicht gestackt (0)", auch nicht gestackt, sondern nur im Label...
return self.label
self.type('Wichtig 1, gestackt.', 1)
self.type('Wichtig 2, gestackt.', 1)
self.type('Wichtig 3, gestackt.', 1)
while True: # Die wiederholte Ausfuehrung des Label-Inhalts soll nur aktualisiert werden, nicht aber gestackt
x = 1
self.type(str('x')+'x; Wichtig 4, nicht gestackt.' 0)
x+=1
if x > 10:
break
>>> so soll's aussehen im Label
10x; Wichtig 4, nicht gestackt.
Wichtig 3, gestackt.
Wichtig 2, gestackt.
Wichtig 1, gestackt.
>>> und nicht so
...
3x; Wichtig 4, nicht gestackt.
2x; Wichtig 4, nicht gestackt.
1x; Wichtig 4, nicht gestackt.
Wichtig 3, gestackt.
Wichtig 2, gestackt.
Wichtig 1, gestackt.
Vielleicht geht das mit dem Label nicht und man nimmt dafuer ein anderes TKinter-Objekt?
Wenn ich das printe, siehts im Uebrigen korrekt aus. Nur im Label nicht.
Vielen Dank im Voraus
Einen angenehmen Freitag
Liebe Grueße
3cosystem