TTK.LABELFRAMEの青いヘッダーラベルをPythonのTkinter 8.5の黒に変更するにはどうすればよいですか

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

  •  20-12-2019
  •  | 
  •  

質問

Windows 7マシンで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ヘッダーにこの青い色に表示されます。なぜわからない。

MacとLinuxがBlackにデフォルトで、Windowsのデフォルトは青です。

TTK.LABELを作成し、TTK.LABELFRAMEのLABLEWIDGET引数として渡してソリューションを見つけました。しかし、これはもっと回避策のかもしれません。いずれにせよ、以下のコードには、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