带快捷键的Tkinter下拉菜单?

26 投票
3 回答
21324 浏览
提问于 2025-04-16 02:48

我想在Tkinter中创建一个下拉菜单,并且希望这个菜单里能显示与命令相关的快捷键。这可能吗?

我还想在某个字符下面加个下划线,以便可以使用 Alt-F-S(文件->保存)这个快捷键。该怎么做呢?

3 个回答

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())
0

也许吧

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)
59
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()

当然可以!请把你想要翻译的内容发给我,我会帮你用简单易懂的语言解释清楚。

撰写回答