我希望我的按钮当我点击它们时返回它们的文本属性
我已经使用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']将始终返回自行车。我希望输出是按钮本身的,例如,当我点击car时,我希望btn['text']返回car
您可以在
command=
中使用lambda
来指定参数为word
的函数,并且函数必须得到这个参数def get_text(text)
代替
word
您可以发送btn
到函数,这样您可以从按钮获取文本,也可以更改按钮上的文本或更改其颜色,等等但它需要一点不同的方法
您还可以使用
bind('<Button-1>', callback)
来分配click to Button或其他Windget,它将运行带有参数event
的函数,该参数允许访问单击的小部件event.widget
相关问题 更多 >
编程相关推荐