前提・実現したいこと
tkinterを用いてGUIの作成をしています。
ttk.LabelFrameを用いてフレームの入れ子構造を作りたいのですが、以下の点が解消できません。
・LabelFrameのラベルのフォント及びサイズが変更できない
・LabelFrameのラベル背景の色の変更方法が分からない
・LabelFrameの枠が表示されない
エラーメッセージはなく、単純に実現ができていない状況です。
下記コードを実行すると、このようなGUIが作成されます。
上のようなGUIの実現法にお心当たりのある方、是非ご回答をよろしくお願いします。
該当のソースコード
import tkinter as tk from tkinter import ttk import tkinter.font as font #tk root = tk.Tk() root.focus_force() root.resizable(False, False) root.title("") # 事前準備 pad = {"padx":5, "pady":5} we = tk.W + tk.E cen = tk.CENTER fon = font.Font(root, family="游明朝 Demibold", size=12) # フレーム LFrameStyle = ttk.Style() LFrameStyle.theme_use("default") LFrameStyle.configure("Dict.TLabelframe.Label", font=("游明朝 Demibold", "12", "Normal"), background="gray94", foreground="black", relief="ridge") fra_Rgst = ttk.LabelFrame(root, relief="ridge", labelanchor="nw", text="LabelFrame", style="Dict.TLabelframe.Label") fra1 = tk.Frame(fra_Rgst, cnf=pad) # ①AAAラベル&テキストボックス lbl1 = ttk.Label(fra1, background="gray94", text="AAA", font=fon) lbl1.grid(row=0, column=0, cnf=pad, sticky=we) ent1 = tk.Entry(fra1, width=20, font=fon) ent1.insert(tk.END, "A") ent1.grid(row=1, column=0, cnf=pad, sticky=we) Word_List = [] # ②BBBラベル&テキストボックス lbl2 = ttk.Label(fra1, background="gray94", text="BBB", font=fon) lbl2.grid(row=3, column=0, cnf=pad, sticky=we) ent2 = tk.Entry(fra1, width=20, font=fon) ent2.insert(tk.END, "B") ent2.grid(row=4, column=0, cnf=pad, sticky=we) lbl2_void = ttk.Label(fra1, background="gray94", text="") lbl2_void.grid(row=5, column=0, cnf=pad, sticky=we) Abb_List = [] # ③CCCラベル&テキストボックス lbl3 = ttk.Label(fra1, background="gray94", text="CCC", font=fon) lbl3.grid(row=6, column=0, cnf=pad, sticky=we) ent3_1 = tk.Entry(fra1, width=20, font=fon) ent3_1.insert(tk.END, "C") ent3_1.grid(row=7, column=0, cnf=pad, sticky=we) lbl3_void = ttk.Label(fra1, background="gray94", text="") lbl3_void.grid(row=8, column=0, cnf=pad, sticky=we) Frgn_List = [] # ④DDDラベル&テキストボックス lbl4 = ttk.Label(fra1, background="gray94", text="DDD", font=fon) lbl4.grid(row=6, column=1, cnf=pad, sticky=we) ent4_1 = tk.Entry(fra1, width=20, font=fon) ent4_1.insert(tk.END, "D") ent4_1.grid(row=7, column=1, cnf=pad, sticky=we) lbl4_void = ttk.Label(fra1, background="gray94", text="") lbl4_void.grid(row=8, column=1, cnf=pad, sticky=we) Lang_List = [] # フレーム綴じる fra1.columnconfigure([1, 3, 5], weight=1) fra1.rowconfigure([0, 1, 2], weight=1) fra1.pack(expand=False, fill="x", padx=10) fra_Rgst.columnconfigure([1, 3, 5], weight=1) fra_Rgst.rowconfigure([0, 1, 2], weight=1) fra_Rgst.pack(expand=False, fill=tk.BOTH, padx=10, pady=10) # 終了 def on_closing(): root.destroy() root.protocol("WM_DELETE_WINDOW", on_closing) root.mainloop()
補足情報(FW/ツールのバージョンなど)
Windows10
tk 8.6.10
追記 -LabelFrameの枠の生成・ラベルのサイズについて
上記コード内のStyle宣言の部分を、
python
1"Dict.TLabelframe.Label" --> "Dict.TLabelframe"
にしたところ、枠が表示され、ラベルのフォントサイズも指定したものになりました。
フレームに表示するラベルのフォント及び背景色についてはまだ解決できていないので、ご協力いただけると助かります。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/09/07 16:06