前提・実現したいこと
tkinterでボタンを押すたびに色が変化するようにしたいのですが、
うまくいきません。
発生している問題・エラーメッセージ
Exception in Tkinter callback Traceback (most recent call last): File "C:\Users\User\Anaconda3\lib\tkinter\__init__.py", line 1702, in __call__ return self.func(*args) File "<ipython-input-16-aa2d88e58cf3>", line 49, in startButtonClick self.button1["bg"] = "red" TypeError: 'NoneType' object does not support item assignment
該当のソースコード
Python3
1class Application(tk.Frame): 2 def __init__(self,master): 3 super().__init__(master) 4 self.pack() 5 6 master.geometry("300x150") 7 master.title("ストップウォッチ") 8 master.config(bg="black") 9 10 self.playTime=False 11 12 #ボタンを設置 13 self.button1 = tk.Button(master,text="Start",command=self.startButtonClick,width=10,bg="lightgreen").place(x=110, y=110) 14 self.button2 = tk.Button(master,text="Stop",command=self.stopButtonClick,width=10,bg="red").place(x=210, y=110) 15 16 master.after(50,self.update) 17 18 def startButtonClick(self): 19 if not self.playTime: 20 self.playTime=True 21 self.button1["bg"] = "red" 22 self.button2["bg"] = "lightgreen" 23 24 def stopButtonClick(self): 25 if self.playTime: 26 #測定終了 27 self.playTime=False 28 self.button1["bg"]="lightgreen" 29 self.button2["bg"] = "red" 30 31 def update(self): 32 self.master.after(50,self.update) 33 34def main(): 35 win = tk.Tk() 36 #win.resizable(width=False, height=False) #ウィンドウを固定サイズに 37 app = Application(master=win) 38 app.mainloop() 39 40if __name__ == "__main__": 41 main()
試したこと
self.button1["bg"] = "red"の代わりに
self.button1.config(bg = "red)やself.button1.widget["bg"] = "red"としても同じエラーが出たので、
self.button1の書き方が良くない気がします。
ボタンを押すたびにbutton1とbutton2が交互に緑と赤で入れ替わるようにしたいです。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/05/02 00:55