Рубрики
Без рубрики

Меню и кнопка меню с помощью Tkinter

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

Автор оригинала: 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()
Выход 1
Выход 2
Результат 3

Вывод

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

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

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