pythonのtkinterを使ってGUIを作成しております。
ttkthemesのテーマを使用したいのですが、どうもrootの背景部分に適用されずに変な状態になっています。
今回は分かりやすいようにs.theme_use('black')
にしました。
一番外枠の色が変わらないのは何故でしょうか?
##該当のソースコード
python
1''' mmain ''' 2# tkinter 3import tkinter as tk 4from tkinter.ttk import * 5from ttkthemes import * 6from tkscrolledframe import ScrolledFrame 7 8class Application(Frame): 9 10 def __init__(self, master=None): 11 Frame.__init__(self,master) 12 master.configure(bg="white") 13 master.resizable(width=False, height=False) 14 15 self.pack() #描写 16 self.create_widgets(master) #フォームの作成 17 18 19 20 #フォームの作成 21 def create_widgets(self,master): 22 23 s = Style() 24 s.theme_use('black') 25 """ 26 スクロールバー フレーム 27 """ 28 # スクロールバー フレーム 29 Frm5 = Frame(master ) 30 Frm5.pack(padx=10 ,pady=5, fill="both") 31 32 33 # スクロールバー フレーム 34 Sfram = ScrolledFrame(Frm5 , height=185) 35 Sfram._x_scrollbar.grid_forget() #水平方向のバーを削除 36 Sfram.grid(row=2, column=0, sticky="nw") 37 Sfram.bind_arrow_keys(root) 38 Sfram.bind_scroll_wheel(root) 39 40 41 # 中のフレーム 42 inner_frame = Sfram.display_widget(Frame) 43 44 """ 45 アカウント名 , アイコンパス , メールアドレス , アイコン画像 ヘッダー 46 """ 47 # No ラベル 48 L_no = Label(inner_frame) 49 L_no.configure(text="No") 50 L_no.grid(row=0, column=0 ,pady=5) 51 52 # アカウント名 ラベル 53 L_account = Label(inner_frame) 54 L_account.configure(text="アカウント名" ) 55 L_account.grid(row=0, column=1,pady=5,padx=5) 56 57 # アイコンのファイル名 ラベル 58 L_account = Label(inner_frame) 59 L_account.configure(text="アイコンのファイル名" ) 60 L_account.grid(row=0, column=2,pady=5,padx=5) 61 62 # メールアドレス ラベル 63 L_mail = Label(inner_frame) 64 L_mail.configure(text="メールアドレス" ) 65 L_mail.grid(row=0, column=3 ,pady=5) 66 67 68 69 70 """ 71 アカウント名 , アイコンパス , メールアドレス , アイコン画像 72 """ 73 74 self.Widget_items = [] 75 for i in range(10): 76 items = [] 77 78 # No ラベル 79 self.L_no1 = Label(inner_frame) 80 self.L_no1.configure(text=f"{i+1}") 81 self.L_no1.grid(row=i +1, column=0) 82 83 # アカウント名 テキストボックス 84 Text_aka = tk.StringVar() 85 self.aka_box = Entry(inner_frame,textvariable=Text_aka ,width = 25) 86 self.aka_box.grid(row=i +1, column=1, sticky="nw") 87 items.append(self.aka_box) 88 89 90 # アイコンのファイル名とキャンバスのセット 91 ifrma = Frame(inner_frame) 92 ifrma.grid(row=i +1, column=2, sticky="nw") 93 94 # アイコンのファイル名 テキストボックス 95 96 Text_icon = tk.StringVar() 97 self.icon_box = Entry(ifrma,textvariable=Text_icon ,width = 15) 98 self.icon_box.grid(row=0, column=0, sticky="nw") 99 items.append(self.icon_box) 100 101 # アイコンの表示 102 self.canvas2 = tk.Canvas(ifrma , width=24 , height=24) 103 self.canvas2.grid(row=0, column=1) 104 items.append(self.canvas2) 105 106 # アカウント名 テキストボックス 107 Text_mail1 = tk.StringVar() 108 self.mail1_box = Entry(inner_frame , textvariable=Text_mail1 ,width = 25 ,foreground='black') 109 self.mail1_box.grid(row=i +1, column=3, sticky="n") 110 items.append(self.mail1_box) 111 112 # アイコンの表示 113 self.load_canvas = tk.Canvas(inner_frame , width=24 , height=24) 114 self.load_canvas.grid(row=i +1, column=4) 115 items.append(self.load_canvas) 116 117 118 self.Widget_items.append(items) 119 120 121 # サイズ調整 122 root.update() 123 Sfram.config(width=inner_frame.winfo_width()) 124 125 126 127 128 129 130 131 132 133if __name__ == "__main__": 134 135 136 root = ThemedTk() 137 root.option_add('*font', ('Ricty Diminished', 12)) 138 app = Application(master=root) 139 app.mainloop() 140
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/02/27 12:43