Farbige Labelbeschriftung

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
punix
User
Beiträge: 18
Registriert: Montag 3. April 2023, 11:34

Hallo zusammen,

Ich möchte eine Labelbeschriftung ändern. Ich hab ein dunkles und ein helles Theme. Ich bekomm das nicht hin das beim Thema wechsel auch gleich die gewünschte Farbe von der beschriftung übernommen wird.
Wenn ich den Tunnel stoppe und wieder starte sowie beim erneuten starten von meinem Programm ist auch die richtige beschriftung da.

Ich hab eine Klasse class MainWindow(tk.Tk):
in der ist ein ttk.Frame für das tk.Menü mit dem "settings.add_command(label='Light', command=theme_change_light)"

Weiter hab ich eine Klasse class FrameWidgets(ttk.Frame):
in dieser ist das ttk.Frame für die beschriftung vom gerade aktiven Tunnel.

Weiter hab ich eine Datei angelegt für Funktionen und Klassen. in dieser hab ich die Klasse class Tunnel: wo die Methode für das Label definiert ist. "color(self)"

Ruf ich nun die Methode Tunnel.color(self) in der Klasse MainWindow(tk.Tk): wo auch die Funktion für den Themewechsel definiert ist auf, kommt eine die Meldung
das self.lb_frame4 nicht definiert ist. Das selbe kommt dann auch für self.tk.StrVar.

In der Klasse MainWindow(tk.Tk): die beiden Attribute mit None angelegt, gibt es keine fehlermeldung mehr aber auch keine änderung der Farbe. Nur dass Fenster wird etwas breiter beim klick auf den Button für die änderung des Theme.

Vielleich weis jemand wie man das hinbekommt. Ist bestimmt simpel.
Benutzeravatar
__blackjack__
User
Beiträge: 14237
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@punix: Falls Du da tatsächlich ``Tunnel.color(self)`` im Quelltext stehen hast, dann ist das falsch. Die Methode muss auf einem `Tunnel`-Objekt aufgerufen werden, nicht auf der Klasse.
“Ich bin für die Todesstrafe. Wer schreckliche Dinge getan hat, muss eine angemessene Strafe bekommen. So lernt er seine Lektion für das nächste Mal.” — Britney Spears, Interview in der französischen Zeitung Libération, 2. April 2002
punix
User
Beiträge: 18
Registriert: Montag 3. April 2023, 11:34

@__blackjack__: Vielen dank!!! durch deine Antwort bin ich auf etwas gestoßen das mich schon ne weile beschäftigt hat. Was das Tunnel.color(self) angeht hab ich den kompletten Code geändert so das diese Fehler weg sind. Hab das bisher so verstanden ähnlich wie @staticmethod. Jetzt weiß ich was ich da falsch gemacht hab.
Antworten