将棋盤を模したボードを再現し、クリックした部分の色が変わるという動作をさせています。
別の場所をクリックすると、以前にクリックした場所の色が元に戻るようにしているのですが、
「上書き描写」という方法でその動作を再現しているので、タイトルにもある通りクリックする度に重くなっているのだと思います。
重くなることを回避できる、良い記述方法はありますでしょうか?
python
1import tkinter as tk 2root = tk.Tk() 3root.geometry("960x480") 4root.title("ボード") 5 6BOADTYPE = 9 7 8size = 40 9base_x = 0 10base_y = 1 11BaseColor = "#e9967a" 12ClickedColore = "#a52a2a" 13 14def OneSquareDisplay(position, _bg): 15 label = tk.Label(root, bg=_bg) 16 label.userOwnValue = position 17 label.place(x=size*(BOADTYPE-position//BOADTYPE+base_x), y=size*(position%BOADTYPE+base_y), height=size-1, width=size-1) 18 label.bind("<1>",Callback) 19 20 21def BoadGeneration(): 22 for i in range(BOADTYPE**2): 23 OneSquareDisplay(i, BaseColor) 24 25 26def Callback(event): 27 click = event.widget.userOwnValue 28 click = int(str(click)) 29 print(click+1) 30 BoadGeneration() 31 OneSquareDisplay(click, ClickedColore) 32 33 34BoadGeneration() 35tk.mainloop() 36 37
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/09/19 11:31
2018/09/19 11:43
2018/09/19 12:09
2018/09/19 12:26
2018/09/19 12:34
2018/09/19 13:21