【发布时间】:2020-02-10 04:55:13
【问题描述】:
我对 Python 还很陌生,并且对在这个论坛上发帖完全陌生(我已经使用它多年,但通常更幸运的是通过搜索过去的问题找到答案。不过我今天很难过)。
rows = 8
columns = 8
def onClick(args):
print("args: ", args)
myButtons = []
myButtons = [ ttk.Button(mainframe, text=str(i) + str(j), command=lambda:onClick([int(i),int(j)])) for i in range(columns) for j in range(rows) ]
for i in range(columns) :
for j in range(rows):
myButtons[i*rows+j].grid(column=i, row=j)
(我没有包含所有的网格创建代码,但它工作正常,按钮正在显示。)。
我正在尝试为网格中的按钮调用单击事件。我尝试创建具有不同参数的按钮,并传递给 onClick 事件,以便我知道单击了哪个按钮。我确信这在我单独创建按钮时有效,而不是在我使用列表理解创建它们时。不过现在,无论我点击哪个按钮,我都会得到:
args: [7,7]
谁能指出我哪里出错了?
谢谢!
【问题讨论】:
-
我想这可能是
tkinter command的原因 -
这能回答你的问题吗? Python and Tkinter lambda function
-
感谢您抽出宝贵时间回复。 acw1668 的回答让我明白了。