我正在尝试在 Tkinter 中设置一个按钮以开始显示“12”,并在单击时更改为“X”。我已经做到了这一点,但我也希望它再次单击时变回“12”,这是我无法弄清楚的。本质上,点击后它应该在“12”和“X”之间交替。
我尝试使用 if 语句来执行此操作,但它不起作用。以下是我到目前为止所得到的:
import tkinter
class MyGUI:
def __init__ (self):
self.window = tkinter.Tk()
self.state = (self.button1["12"])
self.button1 = tkinter.Button(self.window, text=("12"), font=('Arial',18), background=("red"), command=self.change_state)
self.button1.pack(padx=10, pady=10)
self.window.mainloop()
def change_state(self):
if self.state["12"] == True:
self.button1(self.window, self.button1.config(text="X"))
else:
self.button1(self.window, self.button1.config(text="12"))
MyGUI()
这会产生此错误:
'MyGUI' object has no attribute 'button1'
我真的很感谢任何帮助,请注意,我对编程很陌生,学习 Python 是为了好玩。
在您的
change_state
方法中,您检查是否 self.state["12"] == True
。但下次单击该按钮时,您需要将其更改为 False
。当它是 False
时,您需要将其更改为 True
,例如:
if self.state["12"] == True:
self.button1(self.window, self.button1.config(text="X"))
self.state["12"] = False
else:
self.button1(self.window, self.button1.config(text="12"))
self.state["12"] = True