带键盘快捷键的Tkinter下拉菜单?

时间:2010-08-14 22:34:55

标签: python keyboard-shortcuts tkinter

我想在Tkinter中有一个Dropdown Menu,其中包含与此命令关联的快捷键。这可能吗?

如何在特定字符下添加下划线,以允许Alt-F-S(文件 - >保存)?

3 个答案:

答案 0 :(得分:41)

import tkinter as tk
import sys

class App(tk.Tk):

    def __init__(self):
        tk.Tk.__init__(self)
        menubar = tk.Menu(self)
        fileMenu = tk.Menu(menubar, tearoff=False)
        menubar.add_cascade(label="File", underline=0, menu=fileMenu)
        fileMenu.add_command(label="Exit", underline=1,
                             command=quit, accelerator="Ctrl+Q")
        self.config(menu=menubar)

        self.bind_all("<Control-q>", self.quit)

    def quit(self, event):
        print("quitting...")
        sys.exit(0)

if __name__ == "__main__":
    app = App()
    app.mainloop()

答案 1 :(得分:0)

在这段代码中按 ctrl+e 退出程序

from tkinter import *

class MainApp:
    def __init__(self, root):
        self.root = root
        self.menubar = Menu(self.root)
        self.fileMenu = Menu(self.menubar, tearoff=False)
        self.menubar.add_cascade(label="File", menu=self.fileMenu)
        self.fileMenu.add_command(label="Exit", accelerator="Ctrl+E")
        self.root.config(menu=self.menubar)

        self.root.bind_all("<Control-e>", lambda event: self.root.quit())
        self.root.mainloop()


if __name__ == "__main__":
    MainApp(Tk())

答案 2 :(得分:-1)

也许

from tkinter import *
import tkinter.filedialog as filed

root = Tk()
root.title("My Python Tkinter Application")
root.minsize(800,600)

def openfile():
    fn = filed.askopenfilename(filetypes=[("Text Files","*.txt")], title="Open File")
    f = open(fn, "r").read()
    print(f)

def init():
    menu = Menu(root)
    filemenu = Menu(menu)
    filemenu.add_command(label="Open (⌘O)", command=openfile)
    menu.add_cascade(label="File", menu=filemenu)
    root.config(menu=menu)
def key():
    print("Key Pressed: "+repr(event.char))
root.bind("<Key>", key)