На этом шаге мы рассмотрим пример создания такого меню.
Контекстное меню, вызываемое по щелчку правой кнопкой мыши на компоненте, создать также несложно.
Вот пример кода, создающего панель, в которой по щелчку правой кнопкой мыши должно выводиться контекстное меню:
import tkinter import tkinter.ttk class Application(tkinter.ttk.Frame): def __init__(self, master=None): super().__init__(master) # Обязательно указываем ширину и высоту контейнера посредством # опций width и height соответственно self.configure(width=200, height=100) self.pack(padx=4, pady=4) self.create_widgets() self.master.title("Пример создания меню") # Запрещаем изменять размеры окна self.master.resizable(False, False) def create_widgets(self): frm = tkinter.ttk.Frame(self, width=200, height=100) frm.bind("<Button-3>", self.show_menu) frm.grid() self.menu = tkinter.Menu(self, tearoff=False) self.menu.add_command(label="Вырезать") self.menu.add_command(label="Скопировать") self.menu.add_command (label="Вставить") def show_menu(self, evt): self.menu.post(evt.x_root, evt.y_root) root = tkinter.Tk() app = Application(master=root) root.mainloop()
Результат работы приложения приведен на рисунке 1.
Рис.1. Результат работы приложения
На следующем шаге мы рассмотрим компонент Menubutton.