Как сделать меню в консоли python

Обновлено: 03.07.2024

Чтобы начать играть с Python, нам нужно открыть командную строку на твоём компьютере. Ты уже должна знать, как это сделать — мы изучали это в главе Введение в интерфейс командной строки.

Когда будешь готова, следуй приведенным ниже инструкциям.

Мы хотим открыть консоль Python, так что набери python , если работаешь в Windows, или python3 для Mac OS/Linux, и нажми enter .

Твоя первая команда Python!

После запуска Python командная строка изменилась на >>> . Для нас это означает, что сейчас мы можем использовать только команды на языке Python. Тебе не нужно вводить >>> — Python будет делать это за нас.

Если ты хочешь выйти из консоли Python, в любой момент — просто введи exit() или используй сочетание клавиш Ctrl + Z для Windows и Ctrl + D для Mac/Linux. Тогда ты больше не будешь видеть >>> .

Пока что мы не хотим выходить из консоли Python. Мы хотим узнать больше о ней. Давай начнём с чего-нибудь совсем простого. Например, попробуй набрать простое математическое выражение, вроде 2 + 3 , и нажми enter .

Прекрасно! Видишь, как выскочил ответ? Python знает математику! Ты можешь попробовать другие команды, например:

Чтобы вычислить степень числа, например, 2 в кубе, мы вводим:

Поиграй с этим немного и затем вернись сюда :).

Как видишь, Python является прекрасным калькулятором. Если тебе интересно, что ещё можно сделать.

Строки

Как насчет твоего имени? Введи своё имя в кавычках, вот так:

Ты только что создала свою первую строку! Это последовательность символов, которые могут быть обработаны компьютером. Строка должна всегда начинаться и заканчиваться одинаковым символом. Им может быть одинарная ( ' ) или двойная ( " ) кавычка (разницы нет!) Кавычки говорят Python'у, что внутри них находится строка.

Строки могут быть слиты воедино. Попробуй так:

Ты также можешь умножать строки на число:

Если тебе нужно поставить апостроф внутри строки, то есть два способа сделать это.

Используй двойные кавычки:

или поставь перед апострофом обратную косую черту ( \ ):

Прикольно, да? Чтобы увидеть своё имя прописными буквами, просто набери:

Ты только что использовала метод upper своей строки! Метод (такой как upper() ) представляет собой набор инструкций, который должен выполнить Python над заданным объектом (в нашем случае: "Ola" ) при его вызове.

Если ты хочешь узнать количество букв в своём имени, то и для этого тоже существует функция!

Интересно, почему иногда мы вызываем функцию добавлением . к концу строки (как "Ola".upper() ), а иногда сначала пишем имя функции и затем помещаем строку в скобки? Ну, в некоторых случаях функции принадлежат объектам, например, функция upper() , которая может быть применена только к строкам. В этом случае мы называем функцию методом. В другом случае функции не относятся к чему-то конкретному и могут использоваться для различных типов объектов, например, функция len() . Вот почему мы передаем "Ola" в качестве параметра функции len .

Подведём итог

Хорошо, достаточно о строках. Пока ты узнала следующее:

  • командная строка — ввод команд (кода) в интерактивную командную строку Python приводит к ответам на Python;
  • числа и строки — в Python числа используются для вычислений, а строки - для текстовых объектов;
  • операторы, такие как + и *, объединяют значения для получения нового;
  • функции, такие как upper() и len(), выполняют действия над объектами.

Таковы основы каждого языка программирования, который ты можешь выучить. Готова к чему-то посложнее? Мы уверены, что готова!

Ошибки

Давай попробуем кое-что новенькое. Можем ли мы получить длину числа так же, как длину твоего имени? Введи len(304023) и нажми Enter :

Мы получили нашу первую ошибку! Иконкой мы будем обозначать код, который при запуске сработает не так, как ожидается. Совершение ошибок (даже преднамеренных) -- важная часть обучения!

Сработало! Мы использовали функцию str внутри функции len . str() преобразует всё в строки.

  • Функция str преобразует объекты в строки
  • Функция int преобразует объекты в целые числа

Важно: мы можем преобразовать число в текст, но не всегда удается преобразовать текст в числа — например, каков будет результат int('hello') ?

Переменные

Переменные — важное понятие в программировании. Переменная — это всего лишь имя для чего-то, чтобы использовать его позднее. Программисты используют переменные для хранения данных, чтобы их код был более читабельным, и для того, чтобы им не пришлось запоминать, что есть что.

Допустим, мы хотим создать новую переменную с именем name :

Видишь? Это очень легко! Просто введи: name равно Ola.

Как ты уже заметила, твоя программа не возвращает ничего, как было ранее. Так откуда мы знаем, что переменная действительно существует? Просто введи name и нажми Enter :

Ура! Твоя первая переменная:)! Ты всегда можешь изменить то, к чему она относится:

Ты также можешь использовать переменные и в функциях:

Круто, правда? Переменными, конечно, может быть что угодно, и цифры тоже! Попробуй следующее:

Но что делать, если мы использовали неправильное имя? Можешь догадаться, что произойдет? Давай попробуем!

Ошибка! Как ты можешь видеть, в Python есть различные типы ошибок, эта называется NameError. Python выдаст эту ошибку при попытке использовать переменную, которая пока не определена. При возникновении этой ошибки проверь свой код, чтобы узнать, не написала ли ты неправильно имя переменной.

Попрактикуйся в этом какое-то время и посмотри, что ты сможешь сделать!

Функция print

Если просто ввести name , интерпретатор Python вернет строковое представление переменной 'name', которым, в нашем случае, являются буквы M-a-r-i-a, окруженные одинарными кавычками, ''. Когда ты вводишь print(name) , Python "печатает" содержание переменной на экран, без кавычек, что удобнее.

Как мы увидим позднее, print() пригодится, когда нам будет нужно печатать что-то изнутри функций или когда мы захотим напечатать что-то на нескольких строчках.

Списки

Помимо строк и целых чисел Python имеет богатую коллекцию других типов объектов. Сейчас мы собираемся представить тебе один из них — list (список). Списки — это именно то, о чём ты подумала: объекты, которые являются списками других объектов :)

Давай начнем с создания списка:

Отлично, это пустой список. Не особенно полезен, да? Давай создадим список лотерейных номеров. Мы не хотим повторять их каждый раз, так что присвоим список переменной:

Замечательно, у нас есть список! Что мы можем с ним сделать? Для начала посмотрим, как много лотерейных номеров в нашем списке. Есть идеи, какую функцию можно использовать для этого? Ты её уже знаешь!

Точно! len() вернет тебе количество объектов в списке. Удобно, правда? Пожалуй, мы теперь отсортируем его:

Эта команда не возвращает ничего, она просто меняет порядок номеров в списке. Давайте выведем его на экран и посмотрим, что получилось:

Как видишь, номера в списке теперь отсортированы от меньшего к большему. Поздравляем!

Может, нам нужно обратить порядок? Давай сделаем это!

Просто, правда? Если хочешь добавить что-то к своему списку, то можешь воспользоваться этой командой:

Если ты хочешь получить только первый номер в списке, то можешь воспользоваться индексами. Индекс — это номер позиции в списке, на котором находится нужное нам значение. Программисты предпочитают начать считать с 0, так что первому объекту в списке соответствует индекс 0, следующему —1, и так далее. Попробуй ввести:

Как видишь, ты можешь обратиться к различным объектам в своем списке, используя имя списка и индекс объекта в квадратных скобках.

Чтобы удалить что-либо из списка, тебе понадобятся индексы, с которыми мы уже разобрались выше, и команда pop() . Давай попробуем закрепить пройденное на примере: мы будем удалять первый элемент из нашего списка.

Сработало как по маслу!

В качестве дополнительной тренировки попробуй следующие индексы: 6, 7, 1000, -1, -6 и -1000. Можешь предсказать результат? Видишь логику работы?

Словари

Для проходящих руководство дома: этот раздел рассмотрен в видео Python Basics: Dictionaries.

Словари схожи со списками, но ты обращаешься к значениям словаря по ключу, а не по индексу. Ключом может быть любая строка или число. Давай создадим пустой словарь:

Это показывает, что мы создали пустой словарь. Ура!

Теперь попробуй следующую команду (можешь заменить значения на своё имя, страну и т.д.):

Этой командой ты создала переменную participant с тремя парами ключ/значение:

  • ключ name , указывающий на значение 'Ola' (объект типа строка ),
  • ключ country , указывающий на значение 'Poland' (еще одна строка ),
  • и ключ favorite_numbers , указывающий на значение [7, 42, 92] (объект типа список с тремя числами внутри).

Значение конкретного ключа можно узнать следующим образом:

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

Что случится, если мы спросим у Python значение несуществующего в словаре ключа? Можешь предположить? Давай попробуем и узнаем наверняка!

Смотри, другая ошибка! Эта называется KeyError. Python услужливо напоминает, что ключа 'age' нет в словаре.

Когда стоит использовать словарь, а когда список? Это хороший вопрос для самостоятельного размышления. Сделай предположение перед тем, как читать дальше.

  • Тебе нужна упорядоченная последовательность элементов? Список — наш выбор.
  • Тебе нужны сочетания ключ/значение, чтобы быстро искать значения (по ключу) в дальнейшем? Словарь отлично подойдет.

Словари, как и списки, изменяемы, т. е. они могут быть изменены после того, как были созданы. Ты можешь добавить новые пары ключ/значение в словарь следующим образом:

Так же как в примере со списками, использование функции len() вернёт число пар ключ/значение в словаре. Попробуй сама:

Надеюсь, всё вышеизложенное понятно. :) Готова к новым приключениям со словарями? На следующей строке тебя ждут изумительные вещи.

Ты можешь использовать команду pop() для удаления элементов из словаря. Скажем, ты хочешь удалить элемент с ключом 'favorite_numbers' . Просто набери следующую команду:

Как видишь, пара ключ/значение с ключом 'favorite_numbers' была удалена.

Помимо этого, ты можешь заменить значение, связанное с уже существующим ключом. Набери:

Значение, на которое ссылается ключ 'country' , изменилось с 'Poland' на 'Germany' . :) Захватывает? Ещё бы! Ты выучила еще одну потрясающую штуку!

Подведём итог

Шикарно! Теперь ты знаешь немало о программировании. Мы познакомились с:

  • ошибками — теперь ты знаешь как читать и анализировать ошибки, которые возникают, если Python не понимает твоей команды;
  • переменными — именами для объектов, которые упрощают твой код и делают его более читабельным;
  • списками — последовательностями объектов в заданном порядке;
  • словарями — объектами, хранящими пары ключ/значение.

Готова к продолжению? :)

Сравнения

Для проходящих руководство дома: этот раздел рассмотрен в видео Python Basics: Comparisons.

В программировании часто надо что-то сравнивать. Что проще всего сравнить друг с другом? Числа, конечно. Давай посмотрим, как это работает:

Мы передали Python несколько чисел для сравнения. Как ты можешь заметить, Python сравнивает не только числа, но и результаты методов (например, умножения). Неплохо, правда?

Хочешь спросить, почему мы написали двойной символ равенства == , чтобы проверить, одинаковы ли числа? Потому что одинарные символ равенства = уже задействован под присваивание значения переменным. Ты всегда, всегда должна писать два символа равенства == , если хочешь проверить, одинаковы ли объекты. Мы также можем проверить, различаются ли объекты. Для этого мы используем != , как показано в примере выше.

Дадим Python еще два задания:

С > и все понятно, но что значат >= и ? Читай их следующим образом:

  • x > y означает: x больше y
  • x y означает: x меньше y
  • x y означает: x меньше или равен y
  • x >= y означает: x больше или равен y

Супер! Хочешь еще? Тогда попробуй вот это:

Ты можешь передать Python столько чисел, сколько захочешь, и он будет возвращать ответ! Хитро, правда?

  • and — если ты используешь оператор and , оба сравнения по обе стороны от него должны быть True (верны), чтобы результат всей команды был равен True.
  • or — если ты используешь оператор or , достаточно одному из сравнений по обе стороны от него быть равным True, чтобы результат всей команды также равнялся True.

Ты когда-нибудь слышала выражение "сравнивать тёплое с мягким"? Попробуем сделать что-то подобное в Python:

Как мы видим, Python не знает, как сравнить число ( int ) и строку ( str ) между собой. Поэтому он просто возвращает нам ошибку TypeError и предупреждает, что объекты заданных типов не могут быть сравнены.

Логические значения

Между прочим, ты только что познакомилась с новым типом объектов в Python. Он называется Boolean (логический) — и это, наверное, самый простой тип из всех.

Существует только два логических объекта в Python:

Чтобы Python понимал тебя, ты всегда должна писать True с заглавной буквы (остальные прописные). true, TRUE, tRUE не будут восприниматься — только True. (Та же логика применима к False, само собой.)

Ты можешь присваивать переменным логические значения! Смотри сюда:

Попрактикуйся с логическими значениями на примере этих выражений:

  • True and True
  • False and True
  • True or 1 == 1
  • 1 != 2

Поздравляем! Логические значения — одна из самых классных фишек программирования, и ты только что научилась ими пользоваться!

До сих пор мы писали весь код в интерактивной консоли, где Python сразу анализировал, обрабатывал и выполнял наши команды. Мы были ограничены одной строкой. Обычно, программы сохраняются в файлах и выполняются интерпретатором или компилятором нашего языка программирования. Пока мы только просили интерпретатор Python выполнять наши однострочные команды из консоли. Однако нам понадобится больше места для следующих задач, поэтому задача минимум:

  • закрыть интерактивную консоль Python;
  • открыть наш текстовый редактор;
  • сохранить код в новом файле;
  • запустить его!

Чтобы закрыть интерактивную консоль Python, просто набери функцию exit() :

Это вернёт тебя в командную строку.

В главе Текстовый редактор мы выбрали себе редактор. Нам нужно открыть его сейчас и записать следующий код в новый файл (или, если ты используешь Chromebook, создай новый файл в облачной IDE и открой файл, который будет во встроенном редакторе кода):

Очевидно, ты уже искушенный Python разработчик, так что не стесняйся добавить что-нибудь по своему вкусу из ранее изученного.

Теперь нам нужно сохранить файл с кодом и дать ему подходящее имя. Давай назовем его python_intro.py и сохраним на рабочий стол. Мы можем назвать файл как хотим, но важно, чтобы название заканчивалось на .py. Расширение .py говорит операционной системе, что это исполняемый файл python, и Python может его запустить.

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

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

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

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

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

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

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

Свой интерфейс командной строки с блэкджеком и Python

Разбираемся, как это сделать. Библиотека argparse поможет принимать значение конфига в командной строке.

Вот вам четыре шага:

  1. Импортируйте библиотеку.
  2. Создайте парсер.
  3. Добавьте в него аргументы.
  4. Запустите .parse_args() .

Последний приведёт к объекту Namespace . Он содержит простое свойство для каждого входного аргумента из терминала.

Для подробного разбора этапов посмотрите программу myls.py . Она перечисляет файлы в текущей директории. Ниже – реализация без argparse :

Скрипт работает, но вывод отличается от встроенной команды.

Улучшите код с argparse :

Первое отличие – отсутствие условного оператора if , который проверял бы аргументы. Библиотека берёт эту функцию на себя.

Мы импортировали argparse , создали простой парсер с описанием программы и определили ожидаемые от пользователя аргументы. Последним делом запустили .parse_args() для разбора аргументов на входе и получения объекта Namespace , который содержит пользовательский ввод.

После запуска вы увидите, как всего четыре строчки меняют результат:

Отсутствует нужный аргумент пути, поэтому получим ошибку.

А также программа принимает флаг -h , как в примере ниже:

Приложение отвечает на -h выводом справки. И это не требует от нас никаких усилий!

Всего четыре строчки кода превратили переменную args в объект Namespace . Он содержит свойства для аргументов, которые юзер вводит в интерфейс командной строки.

Назовите программу

По умолчанию библиотека использует значение элемента sys.argv[0] для наименования программы, что соответствует названию скрипта. Укажите имя ключевым словом prog :

Оно будет отображаться в справке:

Теперь программа называется myls , а не myls.py .

Выводите настраиваемую справку в интерфейс командной строки

По умолчанию argparse создаёт помощь своего формата. Настройте её с помощью usage :

Во время выполнения токен %(prog)s автоматически заменяется именем программы:

И справка показывает другую строку использования, где опция -h сменилась универсальными токеном [options] .

Отображайте текст до и после аргументов справки

Используйте два ключевых слова для настройки текста до и после справки:

  1. description : описание до вывода помощи
  2. epilog : текст после

Посмотрим, как работает epilog :

Задайте символ префикса

По умолчанию, тире – начинает необязательные аргументы. Измените его с помощью ключевого слова prefix_chars :

Программа стала поддерживать другой префикс, а справка претерпела изменения:

Она отображается аргументом /h . Используйте это для разработки под Windows.

Символы префикса для файлов

Сохраняйте аргументы для сложных программ запуска в файле и загружайте из него. argparse выполняет эту работу из коробки.

Для теста напишите программу:

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

Запуск без аргументов приведёт к ошибке:

Создайте args.txt с параметрами в каждой строке:

У вас есть специальный символ префикса для указания файла с аргументами. Откройте интерфейс командной строки и запустите предыдущую программу:

Видим: argparse считывает аргументы из файла args.txt .

Разрешайте и запрещайте сокращения

Следующая программа выводит указанное вами значение для аргумента --input :

Посмотрите, как argparse обрабатывает сокращения и вызывает программу несколько раз:

Не нравится эта функция? Хотите заставить пользователей вводить полные названия опций? Просто отключите эту возможность ключевым словом allow_abbrev со значением False на этапе создания парсера:

Запустите код, и вы увидите, что сокращения недоступны:

Ошибка сообщает, что пользователь не указал параметр --input потому, что программа не распознала сокращение --inp .

Задавайте имена флагов и аргументов

Вы можете добавить в интерфейс командной строки два типа аргументов:

Позиционными командами оперирует программа.

В предыдущем примере path – позиционный аргумент. Без него программа не работает. Они называются позиционными потому, что позиция определяет их функцию.

Рассмотрим cp из Linux:

Первый позиционный аргумент после cp – источник файла для копирования. Второй – место назначения копии.

Необязательные аргументы изменяют поведение команд во время выполнения. В примере с cp необязательный аргумент флаг -r заставляет команду копировать директории рекурсивно.

Два типа аргументов отличаются синтаксисом: необязательные начинаются с - или -- .

Хотите добавить необязательный аргумент? Вызовите .add_argument() и назовите новый аргумент, начиная с - .

Запустите и проверьте опцию -l :

Теперь программа принимает, но не требует опцию -l .

Задайте действие для аргумента

При добавлении необязательного аргумента можно указать действие. Задайте способ хранения значения в объекте Namespace , который вы получите после выполнения .parse_args() .

Некоторые действия предопределены и доступны для использования:

  • store хранит входное значение в объекте Namespace (действие по умолчанию).
  • store_const содержит постоянное значение, когда указаны соответствующие необязательные аргументы.
  • store_true хранит логическое True , когда указан соответствующий необязательный аргумент, и False в других случаях.
  • store_false хранит логическое False , когда указан соответствующий необязательный аргумент, и True в других случаях.
  • append содержит список, добавляя значение каждый раз, когда опция указана.
  • append_const хранит список, добавляя постоянное значение.
  • count хранит int , равный количеству использования опции.
  • help выводит справку.
  • version показывает версию программы.

Рассмотрим вышеуказанные опции на следующем примере:

Скрипт принимает необязательный аргумент для каждого типа действия выше и печатает значение аргументов, передаваемых через интерфейс командной строки. Протестируйте выполнением примера:

Видно, что без указаний аргументов, значения по умолчанию – None .

Действие store хранит передаваемое значение:

store_const хранит определённую константу, когда предоставлены аргументы. В тесте мы указали аргумент b , и значение args.b стало 42 :

Действие store_true хранит логическое True при наличии передаваемых аргументов и False в остальных случаях. Нужно противоположное поведение? Воспользуйтесь действием store_false :

Создавайте список всех переданных значений одним аргументом с помощью append :

append_const похоже на append , но добавляет одно постоянное значение:

count считает количество передач аргумента. Оно полезно в реализации уровня подробностей вывода программы. Можно определить уровень как -v – меньше подробностей, чем -vvv :

Действие version просто показывает версию программы:

Ещё одна возможность: создавайте собственные действия. Для этого наследуйте класс argparse.Action и реализуйте пару методов.

Следующий пример – настраиваемое действие store , которое выводит больше подробностей, чем стандартное:

Программа вывела линию прежде, чем задать значение 42 параметру -i .

Задавайте количество значений для опции

По умолчанию парсер предполагает один параметр для каждого аргумента. Измените это поведение, указав другое количество значений ключевым словом nargs .

Нужен аргумент, который принимает три значения? Укажите 3 в качестве значения nargs во время добавления параметра в парсер:

Теперь программа принимает три значения для параметра --input :

А значение переменной args.input – это список с тремя значениями.

Ключевое слово nargs также принимает:

  • ? : одно необязательное значение;
  • * : гибкое количество значений, которые собираются в список;
  • + : похоже на * , но требует хотя бы одного значения;
  • argparse.REMAINDER : все значения, которые остаются в командной строке.

В следующей программе позиционный аргумент input принимает одно значение. Если оно отсутствует, программа использует значение ключевого слово default :

Выбирайте значение для аргумента input . В данном случае будет использовано default :

Чтобы принять несколько значений и собрать их в список, укажите * в качестве значения nargs :

Этот код позволяет задавать гибкое число значений для ожидаемого аргумента:

Если вам нужно принять переменное количество значений и убедиться, что указано хотя бы одно значение, используйте + в качестве значений nargs :

Посмотрите, что происходит: первое значение будет связано с первым параметром. Остальные – со вторым:

Оставшиеся значения собираются в список.

Установите значение по умолчанию в отсутствии аргумента

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

Но вы можете определить значение по умолчанию для аргумента:

Запустите программу без опции -a , и вы получите:

Теперь опция -a имеет значение 42 , хотя вы не указывали это явно в командной строке.

Установите тип аргумента

По умолчанию все входные значения обрабатываются как строки. У вас есть возможность определять тип соответствующего свойства объекта Namespace , которое вы получаете после вызова .parse_args() . Воспользуйтесь ключевым словом type :

Указывая значение типа int для аргумента, вы говорите argparse , что свойство .a объекта Namespace должно быть int вместо string :

Теперь значение аргумента проверяется во время выполнения. Если значение не подходит, выводится чёткая ошибка:

Установите допустимые значения для определённого аргумента

Ещё одна интересная особенность библиотеки argparse в Python. Предоставьте список принимаемых значений на стадии добавления новой опции:

Хотите принимать числовые значения? Используйте range() для определения диапазона принимаемых значений:

Тогда значение, указанное вами в командной строке, автоматически сравнивается со списком допустимых значений:

Установите необходимость аргумента

Хотите заставить пользователя вводить необязательный аргумент? Используйте ключевое слово required :

Установите значение required в True , и пользователь должен будет указывать значение для этого аргумента:

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

В этой статье мы поговорим о создании строки меню и кнопки меню с помощью Python и Tkinter.

В этой статье мы поговорим о создании строки меню и кнопки меню с помощью Python и Tkinter.

Я расскажу вам об этой статье на примере.

  • Что такое строка меню?
  • Создание первой строки меню Tkinter
    • 1. Размещение меню в корневом окне Tkinter
    • 2. Добавление Пунктов Меню
    • 3. Добавление кнопки Меню

    Что такое строка меню?

    Как мы все, должно быть, использовали ранее в наших ноутбуках, прикладных программах и т. Д., Строка меню-Это горизонтальная полоса, расположенная в верхней части экрана под строкой заголовка, содержащая раскрывающиеся меню.

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

    Мы просто определяем меню, чтобы мы могли называть его как угодно. Давайте просто назовем это my_menu , и это объект класса Menu () . И мы хотим, чтобы это было в вашем root , и я должен упомянуть, что это просто обычный код, с которого мы обычно начинаем, у него будет маленький значок размером 400 х 400 и заголовок.

    1. Размещение меню в корневом окне Tkinter

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

    2. Добавление Пунктов Меню

    Теперь мы скажем Tkinter использовать my_menu в качестве меню, и он знает, что такое меню. И он знает, что меню поднимаются наверх, и он знает, что они опускаются по щелчку.

    Итак, теперь нам нужно создать пункт меню.

    Поэтому давайте назовем это ” file_menu “. Это будет первое, что будет в нашем меню, и мы просто установим это равным меню (в данном случае my_menu). Нам нужно на самом деле вывести его на экран.

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

    Мы использовали my_menu.add_cascade() здесь, но мы могли бы поместить здесь параметр “label”. То, что мы здесь делаем,-это создание небольших подменю, и мы называем это первое подменю как file_menu.

    Теперь нам нужно добавить что-то в наше новое маленькое подменю, чтобы мы могли сказать file_menu.add_command().

    Я поставил маленькие разделители между кнопками “создать” и “выйти”, вызвав file_menu.add_separator (), который является просто функцией.

    Аналогично, мы создаем edit_menu и option_menu.

    3. Добавление кнопки Меню

    Виджет кнопки меню добавляет кнопки в раскрывающийся список.

    Я назвал кнопку меню как button короче говоря. Мы будем использовать button.grid() , который укажет, что нам нужна сетка, и именно здесь мы собираемся поместить наш элемент списка.

    Теперь нам нужно сделать button.menu(кнопка) , чтобы указать, что нам действительно нужна система стилей меню.

    Полный код для реализации меню Tkinter и кнопки меню

    Весь код, как показано ниже, и вывод того же самого также показан для вашей справки.

    Вывод

    Поэтому, чтобы быстро резюмировать , вы начинаете с настройки своего меню.

    1. Мы назвали его “my_menu”, и это виджет меню, и мы вставляем его в корень. Единственное, что странно, это то, что мы должны настроить его. Итак, это root.config, а затем мы просто сообщаем нашей программе, какое меню использовать.
    2. Чтобы создать элементы, мы создаем вещь верхнего уровня, такую как файл/редактирование/выбор, и добавляем ее в наше меню, а затем просто каскадируем.
    3. Чтобы добавить элементы, вы просто делаете add_command, устанавливаете метку и вводите свою команду, и все готово. Единственная другая странная вещь-это этот маленький разделитель, который очень прост и довольно крут.

    Попробуйте этот пример и сообщите нам, что вы думаете в разделе комментариев ниже.

    Читайте также: