如何使用<<MenuSelect>>绑定到tkinter菜单项选择

2024-10-01 17:30:06 发布

您现在位置:Python中文网/ 问答频道 /正文

我一直在尝试将回调绑定到菜单项选择,而不是使用add\u命令方法的command=功能。在

然而,不管我做什么,它似乎只会给我一个正确的索引菜单项(“菜单1”和“菜单2”),当他们被选中时,而不是菜单按钮的索引。当按下按钮时,将不打印任何内容。在

这是我当前的测试代码,但我已经尝试了很多不同的东西。在

import tkinter as tk

def menucallback(event):
    print(root.call(event.widget, "index", "active"))

root = tk.Tk()

# create menu
menubar = tk.Menu(root)
menu1 = tk.Menu(menubar, tearoff=0)
menu1.add_command(label="Button 1")
menu1.add_command(label="Button 2")
menubar.add_cascade(label="Menu 1", menu=menu1)

menu2 = tk.Menu(menubar, tearoff=0)
menu2.add_command(label="Button 6")
menu2.add_command(label="Button 7")

menubar.add_cascade(label="Menu 2", menu=menu2)

tk.Tk.config(root, menu=menubar)

# bind to function
menubar.bind("<<MenuSelect>>", menucallback)

root.mainloop()

如果有关系的话,我使用的是Windows7和Python3.4


Tags: add菜单buttonroot按钮labelcommandtk
1条回答
网友
1楼 · 发布于 2024-10-01 17:30:06

如果希望在下拉菜单上触发事件,则需要向每个菜单添加相同的绑定。在

当选择菜单项时,您没有得到任何结果的原因很可能是因为在调用回调之前菜单的状态发生了变化(即:单击后没有活动项)。在

相关问题 更多 >

    热门问题