如何更改ttk.LabelFrame';在python';s tkinter 8.5

如何更改ttk.LabelFrame';在python';s tkinter 8.5,python,tkinter,ttk,Python,Tkinter,Ttk,我在Windows7机器上使用tkinter 8.5和python 3.3 下面的代码以蓝色字体呈现Labelframe的标题 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() 我试图通过添加ttk.St

我在Windows7机器上使用tkinter 8.5和python 3.3

下面的代码以蓝色字体呈现Labelframe的标题

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()
我试图通过添加ttk.Style()来修复此问题,但得到了意外的显示:

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()

有没有办法让ttk.LabelFrame标题在没有奇怪副作用的情况下显示为黑色?

Windows似乎将ttk.LabelFrame标题默认为这种蓝色。不知道为什么

我通过创建一个ttk.Label并将其作为ttk.Labelframe的labelwidget参数传递,找到了一个解决方案。不过,这可能更像是一种解决办法。在任何情况下,下面的代码都会在我的Windows 7计算机上以黑色显示标题文本

from tkinter import *
from tkinter import ttk

root = Tk()

l = ttk.Label(text="Not blue anymore")

lf = ttk.Labelframe(root, labelwidget=l)
lf.pack()

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

root.mainloop()

也可以使用前台属性
tk.LabelFrame(窗口,前台='red')

更改此属性。您只需从
ttk.LabelFrame
选项中删除
style='TLabelframe.Label'

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()

我使用的是Python 3.7.3和tkinter 8.6。

你能提供一个完整的示例吗?如果您只使用此代码加上
root.mainloop()
它是否为您演示了问题(对我来说不是…),或者您需要更多吗?@abarnert是的,这就是完整的示例。我忘记了
root.mainloop()
,但这并不影响任何事情。我意识到这是一个旧线程,但对于那些刚刚找到它的人来说:问题是关于ttk.Labelframe的,而不是关于tk.Labelframe的。前者没有前景选项,默认情况下显示为黑色。