首页 > 解决方案 > 如何从 tkinter 的右键菜单中将功能绑定到按钮?

问题描述

我正在 tkinter 中编写一个程序,我正在尝试将一个函数绑定到一个“删除”按钮,该按钮位于右键菜单中。我怎样才能做到这一点?

所以到目前为止我所做的是:

创建我的右键菜单:

self.right_click_menu = tk.Menu(self.mytab, tearoff=0)

创建一个我想用稍后添加的按钮“删除”调用的函数

def delete_plst(self, plst):
    print('deleted')

我也有这个 tkinter 右键菜单的弹出功能

def do_popup(self, events, x):
    self.right_click = x
    self.right_click_menu.tk_popup(events.x_root, events.y_root)
    self.right_click_menu.grab_release()
    # if i uncomment the following line the delete_plst func will run anyways even if I right click my 
    # button and then not clicking 'remove'
    # self.delete_plst(pslt=self.right_click)

然后我在我的右键菜单中添加一个命令

self.right_click_menu.add_command(label='Remove', command=lambda: self.delete_plst)

并将右键单击绑定到弹出功能:

mybutton.bind('<Button-3>', lambda events, x=i: self.do_popup(events, x=x))

基本上对我来说理想的是做这样的事情:

self.right_click_menu.bind('<MyRemoveButtonInsideTheRightClickMenu>', self.delete_plst)

如何仅在单击“删除”按钮而不是右键单击按钮时调用删除功能?

标签: pythontkinter

解决方案


推荐阅读