Python 如何使tkinter.菜单成为焦点?
我使用热键(Alt+s)激活菜单按钮 这是我的密码Python 如何使tkinter.菜单成为焦点?,python,tkinter,Python,Tkinter,我使用热键(Alt+s)激活菜单按钮 这是我的密码 MenuBar = tkinter.Menu(Win) StartMenu = tkinter.Menu(MenuBar) StartMenu.add_command(label="Action 1",command=ActionOne) StartMenu.add_command(label="Action 2",command=ActionTwo) MenuBar.add_cascade(label="Start",menu=StartMe
MenuBar = tkinter.Menu(Win)
StartMenu = tkinter.Menu(MenuBar)
StartMenu.add_command(label="Action 1",command=ActionOne)
StartMenu.add_command(label="Action 2",command=ActionTwo)
MenuBar.add_cascade(label="Start",menu=StartMenu)
我绑定一个事件以使StartMenu成为焦点
所以我用
Win.bind_all("<Alt-s>",lambda event: StartMenu.focus())
Win.bind_all(“,lambda事件:StartMenu.focus())
它不起作用
而focus_force()也不起作用。(我不知道它是否起作用,但它没有任何变化)
Win.bind\u all(“,lambda事件:StartMenu.focus\u force())
当你说它不起作用时,是不是意味着它没有得到关注,还是说它没有打开?仅仅给它焦点是不足以打开菜单的。您是如何确定它没有获得焦点的?@BryanOakley谢谢,我想做的是当我按下alt+s
,菜单就可以打开了。所以我使用.focus()
。有什么方法可以实现这一点吗?在您的情况下,按下alt-s
应该会显示开始菜单
,因为它的标签是Start
(第一个字符是'S')。因此不需要绑定键。我认为您使用的是Linux,对吗?然后尝试MenuBar。添加\u cascade(label=“Start”,menu=startmenus,underline=0)
并重试。设置underline=n
其中n是菜单字符串中字符的索引。
Win.bind_all("<Alt-s>",lambda event: StartMenu.focus_force())