我正在Windows7机器上使用tkinter8.5和python3.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标题以黑色出现w/o奇怪的副作用?

有帮助吗?

解决方案

似乎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(window, foreground='red')

你只需要删除 style='TLabelframe.Label'ttk.LabelFrame 选择。

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

我正在使用Python3.7.3和tkinter8.6。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top