Wie ändere ich das blaue Header-Label von ttk.LabelFrame in Pythons Tkinter 8.5 in Schwarz?

StackOverflow https://stackoverflow.com//questions/25002373

  •  20-12-2019
  •  | 
  •  

Frage

Ich verwende tkinter 8.5 und Python 3.3 auf einem Windows 7-Rechner.

Der folgende Code stellt die Kopfzeile des Labelframes in einer blauen Schriftfarbe dar.

from tkinter import *
from tkinter import ttk

root = Tk()

lf = ttk.LabelFrame(root, text="Why is this blue?")
lf.pack()

label = ttk.Label(lf, text="label")
label.pack()

Ich habe versucht, das Problem durch Hinzufügen von ttk.Style() zu beheben, habe aber eine unerwartete Anzeige erhalten:

from tkinter import *
from tkinter import ttk

root = Tk()

s = ttk.Style()
s.configure('TLabelframe.Label', font='arial 14 bold')

lf = ttk.LabelFrame(root, text="Now it's black, but w/ a bizarre display"
                    " and no etched frame.", style='TLabelframe.Label')
lf.pack()

label = ttk.Label(lf, text="label")
label.pack()

Gibt es eine Möglichkeit, einen ttk.LabelFrame-Header ohne seltsame Nebenwirkungen schwarz erscheinen zu lassen?

War es hilfreich?

Lösung

Es erscheint, dass Windows TTK.LABELLRAME-Header in diese blaue Farbe standardmäßig trägt.Nicht sicher warum.

Mac und Linux Standard in Schwarz, während Windows standardmäßig auf blau ist.

Ich habe eine Lösung gefunden, indem ich ein TTK.label erstellte und das LabelWidget-Argument von TTK.LABELFRAME angibt.Dies könnte jedoch eher eine Problemumgehung sein.In jedem Fall zeigt der folgende Code den Header-Text in Schwarz auf meiner Windows 7-Maschine an.

generasacodicetagpre.

Andere Tipps

Dies kann auch mit dem Vordergrundeigenschaft generisch attraktionalacticetagcode

geändert werden

Sie müssen nur die entfernen style='TLabelframe.Label' von dem ttk.LabelFrame Optionen.

import tkinter as tk
from tkinter import ttk

root = tk.Tk()

s = ttk.Style()
s.configure('TLabelframe.Label', font='arial 14 bold')

lf = ttk.LabelFrame(root, text="Now it's black, but w/ a bizarre display"
                    " and no etched frame.")
lf.pack()

label = ttk.Label(lf, text="label")
label.pack()
root.mainloop()

Ich verwende Python 3.7.3 und tkinter 8.6.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top