tkinter.ttkMenubutton()实现多级菜单
Tkinter是Python的标准GUI(图形用户界面)库之一,它包含了许多用于创建GUI应用程序的工具和控件。ttk(Themed Tk)是Tkinter的扩展,提供了一套主题化的控件,其中包括ttkMenubutton。
ttkMenubutton是一个可点击的按钮控件,它通常用于创建和显示菜单。与普通的按钮不同,ttkMenubutton可以包含一个下拉菜单,以实现多级菜单的功能。
下面是一个使用ttkMenubutton实现多级菜单的示例代码:
import tkinter as tk
from tkinter import ttk
def menu_select():
selection = menu_button.selection_get()
print("You selected:", selection)
root = tk.Tk()
menu_button = ttk.Menubutton(root, text="Menu",
direction="below")
menu_button.pack()
menu = tk.Menu(menu_button, tearoff=False)
menu_button["menu"] = menu
file_menu = tk.Menu(menu, tearoff=False)
menu.add_cascade(label="File", menu=file_menu)
file_menu.add_command(label="Open", command=menu_select)
file_menu.add_command(label="Save", command=menu_select)
file_menu.add_separator()
file_menu.add_command(label="Exit", command=root.quit)
view_menu = tk.Menu(menu, tearoff=False)
menu.add_cascade(label="View", menu=view_menu)
view_menu.add_command(label="Zoom In", command=menu_select)
view_menu.add_command(label="Zoom Out", command=menu_select)
root.mainloop()
在上面的代码中,首先导入了Tkinter和ttk模块,然后定义了一个名为menu_select的回调函数,用于处理菜单项的选择事件。
接下来,创建了一个Tkinter窗口,并在窗口上创建了一个ttkMenubutton控件,显示文本为"Menu"。
然后,创建了一个Menu对象,并将其赋给ttkMenubutton的"menu"属性,以便将下拉菜单与ttkMenubutton关联起来。通过add_cascade方法将菜单项添加到菜单中,级别关系由层层嵌套的Menu对象定义。在本例中,创建了一个名为"File"的一级菜单,以及一个名为"View"的一级菜单。
每个菜单项都通过add_command方法添加,指定了显示的标签文本和调用的回调函数。在本例中,菜单项被选择后将调用menu_select函数,并打印选择的文本。
最后,通过调用root.mainloop()启动Tkinter的事件循环,使窗口保持可见和响应。
运行上述代码,将显示一个图形界面窗口,其中包含一个名为"Menu"的按钮。单击该按钮将展开一个下拉菜单,其中包含"File"和"View"两个一级菜单。在"File"菜单中,又包含"Open"、"Save"和"Exit"三个菜单项;在"View"菜单中,又包含"Zoom In"和"Zoom Out"两个菜单项。
当用户选择任意菜单项时,都会调用menu_select函数,并打印选择的文本。
综上所述,使用ttkMenubutton和Menu对象可以方便地创建多级菜单,并实现菜单项的选择处理。通过添加适当的菜单项和回调函数,可以根据实际需求定制菜单的显示和功能。
