【发布时间】:2017-04-23 01:48:29
【问题描述】:
我有一个名称相似的乘法变量(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="")
...
但在代码的其他部分执行此操作似乎真的很不合 Python,我需要一个动态 buttonX.config...
有人知道我该怎么做吗?
【问题讨论】:
-
使用 容器 保存您的
buttons并在容器中循环。 -
任何时候你发现自己创建了带有数字后缀的变量,你应该使用列表或数组。
标签: python python-3.x for-loop tkinter