我有一个具有相似名称的乘法变量(button1、button2、button3 ...等) 我试图制作一个按钮,每次用户点击他时,所有按钮中的文本(以及在其他情况下的特定部分)都会被删除。
我的代码看起来像这样:
from tkinter import *
from tkinter import ttk
root = Tk()
def reset():
pass
button1 = ttk.Button(root, text="bla")
button2 = ttk.Button(root, text="bla")
button3 = ttk.Button(root, text="bla")
button4 = ttk.Button(root, text="bla")
button5 = ttk.Button(root, text="bla")
button6 = ttk.Button(root, text="bla")
button7 = ttk.Button(root, text="bla")
button8 = ttk.Button(root, text="bla")
button9 = ttk.Button(root, text="bla")
reset_button = ttk.Button(root, text="Restart", command=lambda: reset())
root.mainloop()
现在我尝试创建一个生成器,该生成器创建多行以使用 for 循环执行,但没有成功。 我知道我可以做这样的事情:
def reset():
button1.config(text="")
button2.config(text="")
button3.config(text="")
button4.config(text="")
...
但在代码的其他部分我需要一个动态的buttonX.config...
有人知道我该怎么做吗?
最佳答案
您可以简单地循环按钮(正如评论中已经指出的那样):
def reset():
for button in [button1, button2, ..., button9]:
button.config(text="")
如果可以的话,您可能希望直接创建按钮作为列表的一部分。这可能是可能的,也可能是不可能的。我的意思是这样的:
buttons = [ttk.Button(root, text="bla"),
ttk.Button(root, text="bla"),
ttk.Button(root, text="bla"),
ttk.Button(root, text="bla"),
ttk.Button(root, text="bla"),
ttk.Button(root, text="bla"),
ttk.Button(root, text="bla"),
ttk.Button(root, text="bla"),
ttk.Button(root, text="bla")]
def reset():
for button in buttons:
button.config(text="")
关于python - 使用 for 循环执行乘法变量的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41028961/