【发布时间】:2019-04-23 10:52:04
【问题描述】:
所以我有一个按钮小部件,我希望它在单击后显示小部件的文本和颜色。我不能使用.cget 方法来执行此操作,因为在循环中创建了多个同名按钮,因此它只会给出最后创建的按钮小部件的文本和颜色。尽量不使用复杂的方法,尽量简单。
for x in range(5):
for y in range(10):
if x == 0:
x_row = 'A'
elif x == 1:
x_row = 'B'
elif x == 2:
x_row = 'C'
elif x == 3:
x_row = 'D'
elif x == 4:
x_row = 'E'
seats_button = tkinter.Button(windowmain, text = '%s' % (str(x_row)+str(y+1)), command = lambda: messagebox.showinfo('Testing',seats_button.cget('text')),font=customFont) # Says E10 as it was the last created widget
seats_button.grid(row = x, column = y)
if str(x_row)+str(y+1) in available[0] or str(x_row)+str(y+1) in available[1] or str(x_row)+str(y+1) in available[2] or str(x_row)+str(y+1) in available[3] or str(x_row)+str(y+1) in available[4]:
seats_button["background"] = 'green'
我应该如何解决这个问题?谢谢!
【问题讨论】:
标签: python button tkinter widget