Я создал подменю внутри меню, используя виджеты Menubutton
и Menu
:
from tkinter import *
root = Tk()
def f(event):
submenu.invoke(0)
mainmenu = Menubutton(root, text="Menu")
mainmenu.pack()
submenu = Menu(mainmenu)
mainmenu.config(menu=submenu)
submenu.add_command(label="Option 1")
submenu.add_command(label="Option 2")
Теперь я хочу добавить привязку клавиш к своему меню:
mainmenu.bind("<Key>", f)
mainmenu.focus_set()
Это работает как шарм: когда я нажимаю клавишу, открывается подменю. Но проблема в том, что подменю открывается как оторванное окно верхнего уровня. Но я хочу, чтобы он открывался в одном окне с меню. Я добавил tearoff=0
в submenu
(так получилось: submenu = Menu(mainmenu, tearoff=0)
). Но теперь он ничего не возвращает. Я пытаюсь понять, почему это не так. Может я что-то делаю не так ...
Я искал решение, но ни одно из них не решает проблему. Все, что они говорят, это просто добавление привязки клавиш, которая что-то распечатывает, однако мне нужна привязка клавиш, которая как бы автоматически нажимает на элемент меню и всплывает элементы элемента, но не как отдельное окно (может быть, это называется contextmenu
?) . Я нигде не мог найти решение этой конкретной проблемы.
Итак, как я могу это сделать? Любая помощь будет оценена.
tearoff=0
, он работает как шарм, но когда я добавляю эту функцию, он ничего не возвращает. Это странно. - person Parviz Karimli   schedule 30.07.2016