Меню, подменю и панель инструментов в Tkinter

Меню и подменю в Tkinter

В этой части обучения Tkinter мы поработаем с меню и панелями инструментов. Меню – одна из наиболее заметных и используемых частей графического интерфейса приложений.

Содержание курса

  1. Создание окна по центру и кнопка выхода в Tkinter
  2. Разметка виджетов в Tkinter — pack, grid и place
  3. Виджеты Checkbutton, Label, Scale и Listbox в Tkinter
  4. Меню, подменю и панель инструментов в Tkinter
  5. Диалоговые окна в Tkinter
  6. Рисуем линии, прямоугольники, круг и текст в Tkinter
  7. Пишем игру змейка на Tkinter

Содержание статьи

Фактически, это группа команд, которая объединена в одно меню. В консольных приложениях нам нужно запоминать большое количество тайных команд. Здесь же все команды объединены в удобные группы и расположены на видном месте.

Существуют определенные стандарты, которые позволяют пользователям быстрее осваивать как работает новое приложение. Меню объединяют группы команд, которые мы можем использовать для управления приложением. Панели инструментов дают нам быстрый доступ к тем командам, которые мы используем чаще всего.

Создание простого меню в Tkinter

Первый пример создает простое меню.

Наш пример показывает меню с одним элементом. Нажимая на «Выход» из нашего меню, мы закрываем приложение.

Здесь мы создаем панель меню. Для этого мы используем виджет Menu, который настраиваем для отображения в качестве меню для корневого окна.

Мы создаем объект меню для секции «Файл». Меню – это выпадающее окно, содержащее различные команды.

Мы добавляем новый элемент в меню «Файл». Эта команда будет вызывать метод onExit().

Меню «Файл» добавляется на панель меню при помощи метода add_cascade().

Создаем обычное меню в Tkinter

Добавление подменю для основное меню в Tkinter

Подменю – это меню, встроенные в другие элементы меню. В следующем примере мы продемонстрируем как добавить подменю в Tkinter.

Есть вопросы по Python?

На нашем форуме вы можете задать любой вопрос и получить ответ от всего нашего сообщества!

Telegram Чат & Канал

Вступите в наш дружный чат по Python и начните общение с единомышленниками! Станьте частью большого сообщества!

Паблик VK

Одно из самых больших сообществ по Python в социальной сети ВК. Видео уроки и книги для вас!

В этом примере мы реализовали три опции в подменю от основного меню «Файл». Мы создали разделитель и горячие клавиши.

У нас есть подменю с тремя командами. Подменю – это обычное меню только иерархически она входит в другое меню.

Прикрепляем подменю к нашему основному меню «Файл», но не к самой панели меню. Так создается подменю. При помощи параметра underline мы можем установить горячие клавиши. Этот параметр подчеркивает символ, обозначающий горячую клавишу команды.

В нашем случае, это подчеркнутая первая буква из названия меню:

  • Файл;
  • Импортировать;
  • Выход.

Позиции символов начинаются с нуля. Когда мы нажимаем на меню «Файл», появляется контекстное окно. В меню «Импортировать» также только один символ является подчеркнутым. Мы можем выбрать этот пункт меню при помощи курсора или сочетанием горячих клавиш Alt+I.

Разделитель – это горизонтальная линия, которая визуально разделяет элементы меню. Благодаря разделителям мы можем группировать элементы в меню.

Субменю в Tkinter

В следующем примере мы создадим всплывающее меню. Вызвать его можно в любой части рабочей области окна.

В нашем примере мы создадим всплывающее меню с двумя командами.

Для создания всплывающего меню используется обычный виджет Menu. Отключается свойство tearoff. Теперь у нас есть возможность показать меню в новом всплывающем окне.

Мы назначаем событие клика правой кнопки мышки <Button-3> методу showMenu(). Событие срабатывает тогда, когда мы нажимаем по рабочей области окна правой кнопкой мыши.

Метод showMenu() отображает всплывающее меню. Данное меню открывается по x и y координатам от расположения курсора мышки.

Всплывающее меню в Tkinter

Панель инструментов в Tkinter

Меню объединяют команды, которые мы можем использовать в приложении. Панель инструментов позволяет нам получить быстрый доступ к наиболее популярным командам. В Tkinter нет виджета панели инструментов, нам придется его создать.

Код ниже использует иконку которую нужно будет сохранить рядом с файлом toolbar.py:

Нашей панелью инструментов будет рамка, в которой мы поместим кнопку.

Мы создали панель инструментов. Это обычная рамка. Мы создали границы панели инструментов видными.

Мы создали изображение и фотоизображение для панели инструментов.

Мы создали виджет кнопки выхода.

Панель инструментов – это рамка, а рамка – это виджет контейнера. Мы закрепляем кнопку у левого края и добавляем небольшой отступ в 2 пикселя.

Сама панель инструментов закреплена к верхней части главного окна и растянута горизонтально.

Tkinter панель инструментов

В этой части обучения Tkinter мы поработали с меню и панелями инструментов.