Don*_*ied 0 python label tkinter button
我正在尝试为每个tkinter按钮执行不同的代码 - 直到从列表中调用之后才知道其名称.gtk有标签(不幸的是我不能使用gtk).
我怎么能用tkinter实现类似的呢?
def click_one(newbuttonname):
try:
writethisdown = open("participantsmovedlog.txt", 'a')
except:
pass
rotatee = newbuttonname
thispersonwasrotated(rotatee)
writethisdown.close()
Run Code Online (Sandbox Code Playgroud)
....同时在makebutton函数中:
for someuser in listofusers:
username = someuser
newbuttonname = username
newbuttonname = Tkinter.Button(win, text = newbuttonname, command = lambda:click_one(username))
newbuttonname.pack()
Run Code Online (Sandbox Code Playgroud)
eal*_*nso 10
布莱恩的答案可能并不完全解决这个问题,特别是,只有当按钮的文本在创建后永远不会改变时,他的解决方案才有效.
button.config('text')[-1]
Run Code Online (Sandbox Code Playgroud)
返回实际按钮的文本.
你快到了.您只需要通过lambda或functools.partial传递名称:
newbuttonname = username
newbuttonname = Tkinter.Button(win, text = newbuttonname,
command = lambda name=username:click_one(name))
Run Code Online (Sandbox Code Playgroud)
您可以使用相同的技术传递实际的wodget或任何其他数据.