Lets assume i have an simple list as follow:
import tkinter as tk
root = tk.Tk()
root.geometry("300x400")
menubar = tk.Menu(root)
menu1 = tk.Menu(menubar, tearoff=0)
menu1.add_command(label="Button1")
menu1.add_command(label="Button2")
menubar.add_cascade(label='Menu1', menu=menu1)
tk.Tk.config(root, menu=menubar)
root.mainloop()
Can i add two different functionalities to Button1 and Button2 that are triggered when they are clicked on without using menu1.add_command(label="Button1", command=func1) and menu1.add_command(label="Button2", command=func2)?
Preferably, I am looking for some solution somehow doing something like these hypothetical solutions:
def func1():
pass
def func2():
pass
def binding(Menu1):
Menu1.Button1.bind(func1)
Menu1.Button2.bind(func2)
or
def handler(event):
if event = button1:
func1()
if event = button2:
func2()
menu1.bind(<clicked>, handler)
You can use the label of the menu item to get the index of it in the menu and then use
menu1.entryconfig()to bind a function on that menu item: