My issue is a kind of follow up of this question
I would like to get the widget which has been right clicked to do an action on it.
Conditions :
- right click on "my label 2"
- select "Display the label"
Expected results :
=> "my label 2" should be printed
Initial code to solve :
from Tkinter import * # Tkinter -> tkinter in Python 3
root = Tk()
def print_label():
print "Please, help me to print the label which has been clicked !"
def popup(event):
menu.post(event.x_root, event.y_root)
# create a popup menu
menu = Menu(root, tearoff=0)
menu.add_command(label="Display the label", command=print_label)
# create the 3 labels
label1_text=StringVar()
label2_text=StringVar()
label3_text=StringVar()
label1_text.set("my label 1")
label2_text.set("my label 2")
label3_text.set("my label 3")
label1=Label(root, textvariable=label1_text)
label2=Label(root, textvariable=label2_text)
label3=Label(root, textvariable=label3_text)
label1.pack()
label2.pack()
label3.pack()
# attach popup to frame
label1.bind("<Button-3>", popup)
label2.bind("<Button-3>", popup)
label3.bind("<Button-3>", popup)
root.mainloop()