Как изменить ярлык синего заголовка TTK.Labelframe черным в Tkinter 8.5 Python

StackOverflow https://stackoverflow.com//questions/25002373

  •  20-12-2019
  •  | 
  •  

Вопрос

Я использую TKinter 8.5 и Python 3.3 на машине Windows 7.

Ниже приведен код, отображает заголовок 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 Defaults TTK.Labelframe заголовки на этот синий цвет.Не уверен почему.

Mac и Linux по умолчанию по умолчанию, пока Windows по умолчанию на синий цвет.

Я нашел решение, создав TTK.Label и передаю это, как аргумент Labelwidget TTK.Labelframe.Это может быть больше обходного пути, хотя.В любом случае код ниже отображает текст заголовка в черном на моем компьютере 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()
.

Я использую python 3.7.3 и tkinter 8.6.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top