Выпадающее меню Tkinter с сочетаниями клавиш?

Я хотел бы иметь раскрывающееся меню в Tkinter, которое включает сочетание клавиш, связанное с этой командой. Это возможно?

Как мне также добавить подчеркивание под определенным символом, чтобы разрешить Alt-F-S (Файл-> Сохранить)?


person skeggse    schedule 14.08.2010    source источник


Ответы (3)


Может быть

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)
person pigcake 999    schedule 28.04.2017

В этом коде нажмите 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())
person OMAR TOUIL    schedule 12.07.2021

person    schedule
comment
Спасибо, а как вы это нашли? - person skeggse; 15.08.2010
comment
@CMC: я не нашел, я это знаю. Я занимаюсь разработкой Tk с помощью Tcl с 1995 года, и перевести эти знания на python очень просто. - person Bryan Oakley; 15.08.2010
comment
Ох, ну ладно. Кроме того, как мне подчеркнуть пункт меню персонажа? selection_present возвращает True/False, но мне нужно что-то вроде двух кортежей, содержащих начальное и конечное значения или выделенный текст. - person skeggse; 15.08.2010
comment
@CMC: вы хотите подчеркнуть более одного символа? Опция подчеркивания (как в примере) позволяет подчеркивать только один символ. - person Bryan Oakley; 15.08.2010
comment
А, теперь понятно, я интерпретировал параметр подчеркивания как логическое значение... спасибо. - person skeggse; 15.08.2010
comment
Вот руководство, которое дает немного больше контекста и знакомит вас с горячими клавишами: zetcode.com/tkinter/menustoolbars< /а> - person bubthegreat; 27.04.2020