如何更改 Labelframe 边框颜色?

时间:2021-02-19 14:28:37

标签: python tkinter

我希望能够更改 LabelFrame 边框颜色。 我找到了如何使用 ttk 主题执行此操作,但此方法的问题在于它适用于所有 Labelframe

因为我只想修改一个标签框架,所以我尝试使用 ttkstyle.configure 的方式来做,但它不起作用。我实现了更改标签框架的标签颜色,但背景选项或边框颜色选项似乎不起作用。

这是我的代码: Python 3 Mac OSX

from tkinter import *
from tkinter import ttk
master = Tk()
master.geometry('200x200')
s = ttk.Style()
s.configure('TLabelframe', bordercolor='red')
s.configure('TLabelframe.Label', foreground='blue')
labelframe = ttk.Labelframe(master, text='Options', style='TLabelframe')
labelframe.grid()
b = ttk.Button(labelframe, text='Hello World')
b.grid()
master.mainloop()

预先感谢您的帮助

2 个答案:

答案 0 :(得分:1)

为您的样式预先命名,例如:

s.configure('User.TLabelframe', bordercolor='red')
s.configure('User.TLabelframe.Label', foreground='blue')
labelframe = ttk.Labelframe(master, text='Options', style='User.TLabelframe')

答案 1 :(得分:0)

感谢 Atlas435 的评论,我设法使用“蛤蜊”主题获得了我想要的东西,但我认为我无法通过这种方式为两个不同颜色的标签框着色:

from tkinter import *
from tkinter import ttk
master = Tk()
master.geometry('800x800')

s = ttk.Style()
s.theme_use('clam')
s.configure('clam.TLabelframe', bordercolor='red', borderwidth=8,background='white')
s.configure('clam.TLabelframe.border', background='red', borderwidth=10)
s.configure('clam.TLabelframe.Label', foreground='blue',background='white')

labelframe = ttk.LabelFrame(master, text='Options', style='clam.TLabelframe',height=200, width=400)
labelframe.grid()
labelframe.grid_propagate(0)

b = ttk.Button(labelframe, text='Hello World')
b.grid()

master.mainloop()