【发布时间】:2020-01-10 03:02:46
【问题描述】:
在 python tkinter 中,我有一个程序可以生成多个按钮,默认 fg 为红色
from tkinter import *
root = Tk()
def dothis(i):
print(i)
button.config(fg='green')
for i in range(5):
button = Button(root, width=30, text="button{}".format(i), command=lambda i=i: dothis(i))
button.config(fg='red')
button.pack()
这会创建这个窗口:
在这个程序中,我试图让它一旦按下按钮,文本的颜色 (fg) 就会变成绿色。相反,当调用dothis(i) 时,它会将最后生成的按钮的颜色更改为绿色。这不是我想要的。
总而言之,当我点击 button3 时,我想看到这个:
但是相反,我看到了这个(最后生成的按钮被修改了,不是我想要的那个):
我怎样才能解决这个问题,同时仍然保持循环生成的按钮? 注意:更改颜色后按钮也必须是可修改的,例如一旦变成绿色,它就可以变回红色。
【问题讨论】: