I have designed a GUI using python tkinter. And now I want to set style for Checkbutton and Labelframe, such as the font, the color .etc I have read some answers on the topi
You need to configure the Label sub-component:
from tkinter import *
from tkinter import ttk
root = Tk()
s = ttk.Style()
s.configure('Red.TLabelframe.Label', font=('courier', 15, 'bold'))
s.configure('Red.TLabelframe.Label', foreground ='red')
s.configure('Red.TLabelframe.Label', background='blue')
lf = ttk.LabelFrame(root, text = "Test", style = "Red.TLabelframe")
lf.pack( anchor = "w", ipadx = 10, ipady = 5, padx = 10,
pady = 0, side = "top")
Frame(lf, width=100, height=100, bg='black').pack()
print(s.lookup('Red.TLabelframe.Label', 'font'))
root.mainloop()
As the accepted answer didn't really help me when I wanted to do a simple changing of weight of a ttk.LabelFrame
font (if you do it like recommended, you end up with a misplaced label), I'll provide what worked for me.
You have to use labelwidget
option argument of ttk.LabelFrame
first preparing a seperate ttk.Label
that you style earlier accordingly. Important: using labelwidget
means you don't use the usual text
option argument for your ttk.LabelFrame
(just do it in the label).
# changing a labelframe font's weight to bold
root = Tk()
style = ttk.Style()
style.configure("Bold.TLabel", font=("TkDefaultFont", 9, "bold"))
label = ttk.Label(text="Foo", style="Bold.TLabel")
lf = ttk.LabelFrame(root, labelwidget=label)