Tkinter Menu Ctrl+快捷键

Tkinter Menu Ctrl+快捷键

在设计菜单列表时也可以在指令右边设计Ctrl+X之类的快捷键,X是代表一个快捷键的英文字母,要设计这类操作可以借助accelerator参数,然后再使用bind( )方法将此快捷键绑定一个callback( )方法。为了使程序简化,可以借助Ctrl+快捷键的方法。

示例1

设计File菜单的New File子菜单,可以按Ctrl+N组合键。

from tkinter import *
from tkinter import messagebox

def newFile():
    messagebox.showinfo("New File","New File")
def controlN(event):
    messagebox.showinfo("New File","New File-CONTROL+N")

root = Tk()
root.title("apidemos.com")
root.geometry("300x180")

menubar = Menu(root)      # 建立最上层菜单
# 建立菜单类别对象,并将此菜单类别命名为File
filemenu = Menu(menubar)
menubar.add_cascade(label="File",menu=filemenu,underline=0)
# 在File菜单内建立菜单列表
filemenu.add_command(label="New File",
                    command=newFile,accelerator="Ctrl+N")
# 经过试验发现 #,accelerator="Ctrl+N") 上一行代码的这部分可以直接删去,而不造成可见的影响
filemenu.add_separator()
filemenu.add_command(label="Exit",command=root.destroy,underline=0)

root.config(menu=menubar)    # 显示菜单对象
root.bind("<Control-N>",lambda event:messagebox.showinfo("New File","New File-lambda"))
# root.bind("<Control-N>",controlN)

# 注意: <Control-N>对快捷键的大小写敏感 按键的时候要使用大写的N
root.mainloop()

在主界面,直接输入CTRL+N,输出:

Tkinter Menu Ctrl+快捷键

在上述第18、19行是执行Ctrl+N快捷键的绑定,由于所绑定事件会回传event事件给callback( )方法,所以无法直接调用第3、4行的newFile( )方法,因为newFile( )方法没有传递任何参数,碰上这种问题如果凭直觉再建立一个专供此快捷键使用的方法,此例中使用Lambda表达式处理,以简化整个程序的设计。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程