tkinter - 获取按钮名称?

时间:2012-10-12 15:33:46

标签: python button tkinter label

我正在尝试为每个tkinter按钮执行不同的代码 - 直到从列表调用之后才知道其名称。 gtk有标签(不幸的是我不能使用gtk)。

我如何实现与tkinter类似?

def click_one(newbuttonname):
        try:
                writethisdown = open("participantsmovedlog.txt", 'a')
        except:
                pass
        rotatee = newbuttonname
        thispersonwasrotated(rotatee)
        writethisdown.close()

....同时在makebutton函数中:

for someuser in listofusers:
            username = someuser
            newbuttonname = username 
            newbuttonname = Tkinter.Button(win, text = newbuttonname, command = lambda:click_one(username))
            newbuttonname.pack()

3 个答案:

答案 0 :(得分:10)

布莱恩的回答可能并不能完全解决这个问题,特别是,只有当按钮的文本在创建之后永远不会改变时,他的解决方案才有效。

button.config('text')[-1]

返回实际按钮的文字。

答案 1 :(得分:5)

你快到了。您只需要通过lambda或functools.partial传递名称:

newbuttonname = username 
newbuttonname = Tkinter.Button(win, text = newbuttonname, 
    command = lambda name=username:click_one(name))

您可以使用相同的技术传递实际的wodget或任何其他数据。

答案 2 :(得分:0)

在标记按钮时,它应该用引号引起来:

newbuttonname = tk.Button(win, text="NewButtonName")