我使用python tkinter设计了一个GUI。现在我想为Checkbutton和Labelframe设置样式,例如字体,颜色.etc 我已经阅读了关于tkinter样式主题的一些答案,并且我使用以下方法为Checkbutton和Labelframe设置样式。 但他们实际上并没有工作。
Root = tkinter.Tk()
ttk.Style().configure('Font.TLabelframe', font="15", foreground = "red")
LabelFrame = ttk.Labelframe(Root, text = "Test", style = "Font.TLabelframe")
LabelFrame .pack( anchor = "w", ipadx = 10, ipady = 5, padx = 10, pady = 0, side = "top")
你能告诉我原因,还是你有其他有效的方法?非常感谢你!
答案 0 :(得分:9)
您需要配置Label子组件:
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()
答案 1 :(得分:0)
当我想要简单地改变ttk.LabelFrame
字体的重量时(如果你按照推荐的那样做,你最终得到一个错位的标签),接受的答案并没有真正帮助我,我会提供适合我的方法。
您必须使用labelwidget
ttk.LabelFrame
选项参数,首先准备一个您之前相应设置的单独ttk.Label
。 重要提示:使用labelwidget
表示您不会为text
使用通常的ttk.LabelFrame
选项参数(只需在标签中执行此操作)。
# 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)