原文: https://pythonbasics.org/tkinter-menu/

Tkinter 菜单是顶级下拉菜单。 正如您希望传统 gui 应用程序所期望的那样,它们显示在标题栏下方。

该菜单可以具有多个子菜单,并且每个子菜单都可以包含项目。 菜单项可以与回调方法相关联,这意味着单击它们时将调用 Python 方法。

示例

简介

添加菜单非常简单,但是如果您是第一次使用它,可能会有些混乱。 首先使用以下几行创建顶部菜单:

  1. self.master = master
  2. menu = Menu(self.master)
  3. self.master.config(menu=menu)

然后,您可以将菜单添加到此菜单:

  1. fileMenu = Menu(menu)
  2. menu.add_cascade(label="File", menu=fileMenu)
  3. editMenu = Menu(menu)
  4. menu.add_cascade(label="Edit", menu=editMenu)

这些子菜单中的每个子菜单都可以包含以下项目:

  1. fileMenu.add_command(label="Item")
  2. fileMenu.add_command(label="Exit", command=self.exitProgram)
  3. editMenu.add_command(label="Undo")
  4. editMenu.add_command(label="Redo")

菜单项可以单击,您可以按与按钮(command =)相同的方式指定回调方法。 单击后将调用 Python 方法。

Tkinter 菜单 - 图1

Tkinter 菜单示例

下面的菜单示例将菜单添加到基本的 tkinter 窗口。 它具有一个可单击的菜单项,但显示完整的菜单。

  1. from tkinter import *
  2. class Window(Frame):
  3. def __init__(self, master=None):
  4. Frame.__init__(self, master)
  5. self.master = master
  6. menu = Menu(self.master)
  7. self.master.config(menu=menu)
  8. fileMenu = Menu(menu)
  9. fileMenu.add_command(label="Item")
  10. fileMenu.add_command(label="Exit", command=self.exitProgram)
  11. menu.add_cascade(label="File", menu=fileMenu)
  12. editMenu = Menu(menu)
  13. editMenu.add_command(label="Undo")
  14. editMenu.add_command(label="Redo")
  15. menu.add_cascade(label="Edit", menu=editMenu)
  16. def exitProgram(self):
  17. exit()
  18. root = Tk()
  19. app = Window(root)
  20. root.wm_title("Tkinter window")
  21. root.mainloop()

下载 Tkinter 示例