Wie ändere ich das blaue Header-Label von ttk.LabelFrame in Pythons Tkinter 8.5 in Schwarz?
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?
Lösung
Es erscheint, dass Windows TTK.LABELLRAME-Header in diese blaue Farbe standardmäßig trägt.Nicht sicher warum.
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 werdenSie 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.