Python 2.7 单击按钮后获取标签文本(Tkinter)
我是Python和Tkinter的新手,所以我尝试创建一个示例程序进行探索 程序基本上以标签的形式显示名称,然后在标签旁边放置4个按钮 其中一个按钮是“删除”,我想做的是,按钮将获得标签的名称,就在“删除”按钮旁边 代码是:Python 2.7 单击按钮后获取标签文本(Tkinter),python-2.7,tkinter,Python 2.7,Tkinter,我是Python和Tkinter的新手,所以我尝试创建一个示例程序进行探索 程序基本上以标签的形式显示名称,然后在标签旁边放置4个按钮 其中一个按钮是“删除”,我想做的是,按钮将获得标签的名称,就在“删除”按钮旁边 代码是: from Tkinter import * class GUI(): def __init__(self): self.namelist = ["Mark","Anna","Jason","Lenna",
from Tkinter import *
class GUI():
def __init__(self):
self.namelist = ["Mark","Anna","Jason","Lenna",
"Leo","Zucharich","Robinson",
"AReallyLongNameThatMightExist"]
self.canvas = Canvas(width=1200,height=700)
self.canvas.pack(expand=YES,fill=BOTH)
def Friends(self):
frame = Frame(self.canvas)
frame.place(x=600,y=300)
#Frame for showing names of friends
row = 0
for x in self.namelist:
label = Label(frame,text="%s "%x)
chatButton = Button(frame,text="Chat")
delButton = Button(frame,text="Delete")
setcloseButton = Button(frame,text="Set Close")
setgroupButton = Button(frame,text="Set Group")
label.grid(row=row, column=0, sticky="W")
chatButton.grid(row=row, column=1)
delButton.grid(row=row, column=2)
setcloseButton.grid(row=row, column=3)
setgroupButton.grid(row=row, column=4)
row = row + 1
mainloop()
GUI = GUI()
GUI.Friends()
示例:如果您运行代码,那么当您单击“标记”旁边的“删除”按钮时,该按钮将返回“标记”
谢谢!Tk按钮有一个命令选项,允许您在单击按钮时指定要运行的代码。在这种情况下,您只需将同级小部件名称传递给您的函数。您可以通过在创建时捕获小部件名称来完成此操作:
label = ...
delButton = Button(frame,text="Delete",
command=self.makeClosure(label))
...
def makeClosure(self, labelWidget):
return lambda: self.onClick(labelWidget)
def onClick(self, labelWidget):
print(labelWidget["text"])
在本例中,当我们创建delButton小部件时,该命令被定义为一个lambda,该lambda创建了一个闭包,包括定义该lambda时定义的标签变量。现在,单击delButton时,该值将传递给onClick函数,该函数可以在运行时使用该函数调用小部件上的方法