【发布时间】:2019-04-09 17:43:22
【问题描述】:
我希望我的按钮在单击它们时返回它们的文本属性。
我使用 for 循环来动态创建按钮,但是当我这样做时,btn 变量会卡在最后创建的按钮上,这意味着每个按钮都返回相同的文本值。
listWords = ("Car","Train","Bus","Bike")
var = 0
def getdef():
print(btn['text'])
for word in listWords:
btn = Button(window, text=word,command=getdef)
btn.grid(column=var, row=0)
var = var + 1
此代码生成 4 个按钮: Image of buttons
但是,无论我按什么按钮 btn['text'] 都会返回 Bike。我希望输出是按钮本身的输出,例如当我单击汽车时,我希望 btn['text'] 返回汽车。
【问题讨论】:
-
你知道如何使用
list并在列表中保留许多元素(即按钮)吗? -
删除
, command=getdef并更改为btn.bind('<Button-1>', text)。输出def text(event): print(event.widget['text'])