【发布时间】:2019-01-28 10:59:44
【问题描述】:
我正在制作一个简单的程序,它创建一个tkinter.Button() 的 3x3 矩阵,当按下按钮时,它应该在其上显示“已单击”文本。
但结果似乎是位于同一列上的按钮被绑定到同一个命令 - 该命令以该列最后一行的按钮为目标。
from tkinter import *
root = Tk()
text = [[None]*3]*3
buttons = [[None]*3]*3
def action(i, j):
text[i][j].set('Clicked')
for i in range(3):
for j in range(3):
text[i][j] = StringVar()
text[i][j].set('(%d, %d)' % (i,j))
buttons[i][j] = Button(root, command = lambda i=i, j=j : action(i, j))
buttons[i][j].config(textvariable = text[i][j], width = 9, height = 5)
buttons[i][j].grid(row = i, column = j)
root.mainloop()
【问题讨论】: