実現したいこと
tkinterの.bindメソッドを用いているボタンを1回押されたら無効化するようにしたい。
試したこと
ボタンが1度押されたらボタンのstateを「disable」に設定して反応させないようにした。
発生した問題
ボタンが複数あるため.bindメソッドを用いていたので「disable」になってもそのままボタンを押せた。
どうやらbindメソッドを用いて関数と紐づけた場合は無効化できないみたいです。
.bindメソッドを用いていてもボタンを無効化できる方法を教えてください。
例(実際のコードは長くなり過ぎてしまうので簡易的に再現すると)
python
1import tkinter as tk 2 3def clicked(event): 4 event.widget["state"] = tk.DISABLED 5 6root = tk.Tk() 7root.title("test") 8 9bt = [[tk.Button(root) for i in range(3)] for j in range(3)] 10for i in range(3): 11 for j in range(3): 12 bt[j][i].grid(column=i, row=j) 13 14root.bind("<1>", clicked) 15root.mainloop()
回答1件
あなたの回答
tips
プレビュー