Автор оригинала: Pankaj Kumar.
В этой статье мы поговорим о создании строки меню и кнопки меню с помощью Python и Tkinter.
Я расскажу вам об этой статье на примере.
содержание
- Что такое строка меню?
- Создание первой строки меню Tkinter
- 1. Размещение меню в корневом окне Tkinter
- 2. Добавление Пунктов Меню
- 3. Добавление кнопки Меню
- Полный код для реализации меню Tkinter и кнопки меню
- Вывод
Что такое строка меню?
Как мы все, должно быть, использовали ранее в наших ноутбуках, прикладных программах и т. Д., Строка меню-Это горизонтальная полоса, расположенная в верхней части экрана под строкой заголовка, содержащая раскрывающиеся меню.
Создание первой строки меню Tkinter
Мы просто определяем меню, чтобы мы могли называть его как угодно. Давайте просто назовем это my_menu
, и это объект класса Menu ()
. И мы хотим, чтобы это было в вашем root
, и я должен упомянуть, что это просто обычный код, с которого мы обычно начинаем, у него будет маленький значок размером 400 х 400 и заголовок.
1. Размещение меню в корневом окне Tkinter
Поэтому мы хотим поместить это меню в корневой каталог, с этого момента мы будем ссылаться на него как на my_menu, как и на любой другой виджет, который мы используем в Tkinter.
from tkinter import * root = Tk() root.title("Menu Bar") root.geometry("400x400") my_menu=Menu(root) root.config(menu=my_menu) root.mainloop()
2. Добавление Пунктов Меню
Теперь мы скажем Tkinter использовать my_menu
в качестве меню, и он знает, что такое меню. И он знает, что меню поднимаются наверх, и он знает, что они опускаются по щелчку.
Итак, теперь нам нужно создать пункт меню.
Поэтому давайте назовем это ” file_menu “. Это будет первое, что будет в нашем меню, и мы просто установим это равным меню (в данном случае my_menu). Нам нужно на самом деле вывести его на экран.
Мы обычно решаем его или упаковываем. Но здесь мы будем использовать каскад.
file_menu= Menu(my_menu) my_menu.add_cascade(label="File", menu=file_menu) file_menu.add_command(label="New...",command=our_command) file_menu.add_separator() file_menu.add_command(label="Exit",command=root.quit)
Мы использовали my_menu.add_cascade() здесь, но мы могли бы поместить здесь параметр “label”. То, что мы здесь делаем,-это создание небольших подменю, и мы называем это первое подменю как file_menu.
Теперь нам нужно добавить что-то в наше новое маленькое подменю, чтобы мы могли сказать file_menu.add_command().
Я поставил маленькие разделители между кнопками “создать” и “выйти”, вызвав file_menu.add_separator (), который является просто функцией.
Аналогично, мы создаем edit_menu и option_menu.
edit_menu = Menu(my_menu) my_menu.add_cascade(label="Edit",menu=edit_menu) edit_menu.add_command(label="Cut",command=our_command) edit_menu.add_command(label="Copy",command=our_command) option_menu = Menu(my_menu) my_menu.add_cascade(label="Edit",menu=option_menu) option_menu.add_command(label="Find",command=our_command) option_menu.add_command(label="Find Next",command=our_command)
3. Добавление кнопки Меню
Виджет кнопки меню добавляет кнопки в раскрывающийся список.
Я назвал кнопку меню как button
короче говоря. Мы будем использовать button.grid()
, который укажет, что нам нужна сетка, и именно здесь мы собираемся поместить наш элемент списка.
Теперь нам нужно сделать button.menu(кнопка)
, чтобы указать, что нам действительно нужна система стилей меню.
mButton=Menubutton(root,text="Click") mButton.grid() # insert any menu here mButton.menu.add_checkbutton(label="Copy") mButton.pack()
Полный код для реализации меню Tkinter и кнопки меню
Весь код, как показано ниже, и вывод того же самого также показан для вашей справки.
from tkinter import * root = Tk() root.title("Menu Bar") root.geometry("400x400") my_menu=Menu(root) root.config(menu=my_menu) def our_command(): my_label = Label(root, text="Clicked!!").pack() file_menu= Menu(my_menu) my_menu.add_cascade(label="File", menu=file_menu) file_menu.add_command(label="New...",command=our_command) file_menu.add_separator() file_menu.add_command(label="Exit",command=root.quit) mButton=Menubutton(root,text="Click") mButton.grid() edit_menu = Menu(my_menu) my_menu.add_cascade(label="Edit",menu=edit_menu) edit_menu.add_command(label="Cut",command=our_command) edit_menu.add_command(label="Copy",command=our_command) mButton.menu.add_checkbutton(label="Copy") mButton.pack() option_menu = Menu(my_menu) my_menu.add_cascade(label="Edit",menu=option_menu) option_menu.add_command(label="Find",command=our_command) option_menu.add_command(label="Find Next",command=our_command) root.mainloop()
Вывод
Поэтому, чтобы быстро резюмировать , вы начинаете с настройки своего меню.
- Мы назвали его “my_menu”, и это виджет меню, и мы вставляем его в корень. Единственное, что странно, это то, что мы должны настроить его. Итак, это root.config, а затем мы просто сообщаем нашей программе, какое меню использовать.
- Чтобы создать элементы, мы создаем вещь верхнего уровня, такую как файл/редактирование/выбор, и добавляем ее в наше меню, а затем просто каскадируем.
- Чтобы добавить элементы, вы просто делаете add_command, устанавливаете метку и вводите свою команду, и все готово. Единственная другая странная вещь-это этот маленький разделитель, который очень прост и довольно крут.
Попробуйте этот пример и сообщите нам, что вы думаете в разделе комментариев ниже.