python - 使用 for 循环执行乘法变量的方法

标签 python python-3.x for-loop tkinter

我有一个具有相似名称的乘法变量(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/

相关文章:

python - 如何优化和寻找大量输入的输出?

Python 3,为什么只有函数和部分在多处理 apply_async 中起作用,但闭包和 lambda 都不起作用

python - SciKit-Learn 标签编码器导致错误 'argument must be a string or number'

python - 每当文本超过可视区域时,如何使文本自动向下滚动?

python - django rest 单线程/阻塞 View

python - 如何在 Dataframe 的每一列中搜索异常?

java - 在 Java 中访问嵌套列表数组时遇到问题

java - 在 Play 框架和 Django 之间共享 session

python - 如何根据列值合并数据框中的行?

error-handling - BAT : Parse Output File For Error Handling