python tkinter中如何像菜单中的一个选项添加快捷键?

据说用bind(),但是不知道具体怎么做,谢谢!这是我菜单的代码:m=Menu(root)root.config(menu=m)filemenu=Menu(m)m.add... 据说用bind(),但是不知道具体怎么做,谢谢!
这是我菜单的代码:
m = Menu(root)
root.config(menu = m)

filemenu = Menu(m)
m.add_cascade(label="File", menu=filemenu)
filemenu.add_command(label="New", command=callback)
filemenu.add_command(label="Open...", command=callback)
filemenu.add_separator()
filemenu.add_command(label="Exit", command=callback)
展开
 我来答
就烦条0o
2015-12-28 · 知道合伙人软件行家
就烦条0o
知道合伙人软件行家
采纳数:33315 获赞数:46491
从事多年系统运维,喜欢编写各种小程序和脚本。

向TA提问 私信TA
展开全部

python中tkinter需要使用accelerator添加菜单的快捷键,该选项仅显示,并没有实现加速键的功能,添加功能需按键绑定,代码如下:

from tkinter import *
root = Tk()
def callback():
    print("~被调用了~")
# 创建一个顶级菜单
menubar = Menu(root)
# 创建一个下拉菜单“文件”,然后将它添加到顶级菜单中
filemenu = Menu(menubar, tearoff=False)
filemenu.add_command(label="打开", command=callback, accelerator='Ctrl+N')
filemenu.add_command(label="保存", command=callback)
filemenu.add_separator()
filemenu.add_command(label="退出", command=root.quit)
menubar.add_cascade(label="文件", menu=filemenu)
# 显示菜单
root.config(menu=menubar)
root.bind_all("<Control-n>", lambda event: print('加速键Ctrl+N'))
mainloop()

效果如下:

备注:accelerator
1. 显示该菜单项的加速键(快捷键)
2. 例如 accelerator = "Ctrl+N"
3. 该选项仅显示,并没有实现加速键的功能(通过按键绑定实现)

吕合金
2018-01-29 · TA获得超过151个赞
知道答主
回答量:49
采纳率:33%
帮助的人:6.4万
引用j88r的回答:
python中tkinter需要使用accelerator添加菜单的快捷键,该选项仅显示,并没有实现加速键的功能,添加功能需按键绑定,代码如下:
from tkinter import *root = Tk()def callback(): print("~被调用了~")# 创建一个顶级菜单menubar = Menu(root)# 创建一个下拉菜单“文件”,然后将它添加到顶级菜单中filemenu = Menu(menubar, tearoff=False)filemenu.add_command(label="打开", command=callback, accelerator='Ctrl+N')filemenu.add_command(label="保存", command=callback)filemenu.add_separator()filemenu.add_command(label="退出", command=root.quit)menubar.add_cascade(label="文件", menu=filemenu)# 显示菜单root.config(menu=menubar)root.bind_all("<Control-n>", lambda event: print('加速键Ctrl+N'))mainloop()效果如下:

备注:accelerator1. 显示该菜单项的加速键(快捷键)2. 例如 accelerator = "Ctrl+N"3. 该选项仅显示,并没有实现加速键的功能(通过按键绑定实现)
展开全部
# 不打印
root.bind_all("<Control-n>", lambda event: My_Print('加速键Ctrl+N'))

# 打印
root.bind("<Control-n>", lambda event: My_Print('加速键Ctrl+N'))
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式