Найти тему
Fakeminer

Интерфейс в Python #2 - Выпадающее меню

Иногда бывают случае, что в пункте меню надо реализовать как бы еще одно меню. Сегодня мы рассмотрим как это сделать

Если вы еще не читали предыдущую статью об интерфейсах где я рассказывал самые азы в этом, рекомендую почитать

Окей, мы сделали меню, теперь сделаем его выпадающим. Ну на самом деле помните, как мы создавали меню в окне? Теперь все также, вот только не в окне, а в самом меню. Звучит странно, но поехали к практике.

mainmenu = Menu(root) # Инициализируем меню
filemenu = Menu(mainmenu, tearoff=0) # Убираем странную полоску сверху, открепляющую меню
root.config(menu=mainmenu)
mainmenu.add_command(label="Информация") # Пункт
mainmenu.add_command(label="Ошибка") # Пункт
mainmenu.add_command(label="Предупреждение") # Все еще пункт

Помните, в прошлый раз мы сделали такое меню? Сейчас я оставил только его, чтобы ничего не мешало. Выглядит это так:

Теперь мы удаляем все это и оставляем только один пункт

-2

Сейчас нам надо полностью переписать его таким образов:

mainmenu = Menu(root) # Инициализируем основное меню
root.config(menu = mainmenu)
info = Menu(mainmenu) # Создаем новое меню
evenmenu = Menu(info) # Создаем меню, которое расположим внутри меню, которое будет распологаться внутри меню
mainmenu.add_cascade(label="Информация", menu=info) # В основное меню добавляем меню info
info.add_cascade(label="Выпадающий элемент1", menu=evenmenu) # В меню info добавляем меню evenmenu
evenmenu.add_command(label="Еще елемент...") # В evenmenu создаем элемент

Благодаря этому у нас получается так:

-3

Извините, конечно за кривой скрин, по-другому не получилось, так как меню закрывается после того, как курсор сводится куда-то еще.

Спасибо за прочтение! С вами был Fakeminer и Да прибудет с вами программирование, друзья!

[Самореклама] Псс... Чувак? Хочешь научиться делать на Python приложения с интерфейсом? Тогда переходи по ссылке и научись делать интерфейсы на Python всего за 15 минут!