📅  最后修改于: 2023-12-03 15:34:17.541000             🧑  作者: Mango
菜单是 Tkinter 中最重要的小部件之一。它允许用户在应用程序中选择操作。 Tkinter 中的菜单可以使用 Menu 小部件创建,并通过添加菜单项来丰富菜单。
下面的代码片段创建了一个空白菜单:
from tkinter import *
root = Tk()
menu_bar = Menu(root)
root.config(menu=menu_bar)
file_menu = Menu(menu_bar, tearoff=0)
menu_bar.add_cascade(label='File', menu=file_menu)
root.mainloop()
在上面的代码中,我们使用 Menu() 方法创建了一个菜单对象,并将其分配给窗口的菜单选项卡。然后,我们创建了一个名为 File 的下拉菜单。
使用 add_cascade() 方法将我们的下拉菜单添加为顶级菜单,然后我们在主窗口中运行 mainloop()。
在上面的示例中我们创建了一个名为 File 的下拉菜单。在下拉菜单中添加选项可以使用 add_command() 方法。
from tkinter import *
root = Tk()
menu_bar = Menu(root)
root.config(menu=menu_bar)
file_menu = Menu(menu_bar, tearoff=0)
menu_bar.add_cascade(label='File', menu=file_menu)
file_menu.add_command(label='New')
file_menu.add_command(label='Open')
file_menu.add_command(label='Save')
file_menu.add_separator()
file_menu.add_command(label='Exit', command=root.quit)
root.mainloop()
在上面的代码中,我们按如下方式添加菜单项:
我们可以使用 add_checkbutton() 和 add_radiobutton() 方法创建复选框和单选框菜单项。
from tkinter import *
root = Tk()
menu_bar = Menu(root)
root.config(menu=menu_bar)
file_menu = Menu(menu_bar, tearoff=0)
menu_bar.add_cascade(label='File', menu=file_menu)
file_menu.add_command(label='New')
file_menu.add_command(label='Open')
file_menu.add_command(label='Save')
file_menu.add_separator()
edit_menu = Menu(menu_bar, tearoff=0)
menu_bar.add_cascade(label='Edit', menu=edit_menu)
edit_menu.add_checkbutton(label='Show Line Numbers')
edit_menu.add_checkbutton(label='Show End-of-Line Characters')
edit_menu.add_separator()
edit_menu.add_radiobutton(label='Light Theme')
edit_menu.add_radiobutton(label='Dark Theme')
root.mainloop()
在上面的代码中,我们创建了一个名为 Edit 的下拉菜单,并添加了四个菜单选项:
可以通过合并多个菜单来创建一个更复杂的菜单。使用 add_cascade() 包含更多的菜单,它将菜单作为另一个菜单的子级添加。
from tkinter import *
root = Tk()
menu_bar = Menu(root)
root.config(menu=menu_bar)
file_menu = Menu(menu_bar, tearoff=0)
menu_bar.add_cascade(label='File', menu=file_menu)
edit_menu = Menu(menu_bar, tearoff=0)
menu_bar.add_cascade(label='Edit', menu=edit_menu)
view_menu = Menu(menu_bar, tearoff=0)
menu_bar.add_cascade(label='View', menu=view_menu)
file_menu.add_command(label='New')
file_menu.add_command(label='Open')
file_menu.add_command(label='Save')
file_menu.add_separator()
edit_menu.add_checkbutton(label='Show Line Numbers')
edit_menu.add_checkbutton(label='Show End-of-Line Characters')
edit_menu.add_separator()
edit_menu.add_radiobutton(label='Light Theme')
edit_menu.add_radiobutton(label='Dark Theme')
view_menu.add_cascade(label='Zoom In')
view_menu.add_cascade(label='Zoom Out')
zoom_menu = Menu(view_menu, tearoff=0)
view_menu.add_cascade(label='Zoom', menu=zoom_menu)
zoom_menu.add_command(label='100%')
zoom_menu.add_command(label='75%')
zoom_menu.add_command(label='50%')
zoom_menu.add_command(label='25%')
zoom_menu.add_separator()
zoom_menu.add_command(label='Fit Screen')
root.mainloop()
在上面的代码中,我们创建了三个菜单:
每个菜单都有自己的菜单项。在 View 菜单中添加了一个子菜单 Zoom,并将菜单项 Zoom In 和 Zoom Out 与其关联。)viewDidLoad 方法由 Cocoa 框架调用来建立视图层次。