在 Tkinter 中单击按钮时如何在两个数字之间切换?

问题描述 投票:0回答:1

我正在尝试在 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 是为了好玩。

python tkinter button
1个回答
0
投票

在您的

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
© www.soinside.com 2019 - 2024. All rights reserved.