Выпадающее меню Tkinter с быстрыми клавишами? Я хотел бы иметь раскрывающееся меню в Tkinter, которое включает в себя комбинацию клавиш, связанную с этой командой. Возможно ли это? Как бы я также добавил подчеркивание под определенным символом, чтобы разрешить Alt-F-S (Файл- > Сохранить)? Ответ 1 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() Ответ 2 Может 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)
Ответ 1 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()
Ответ 2 Может 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)