Tkinter 中的弹出菜单
Tkinter 是 Python 的标准 GUI(图形用户界面)包。它是Python自带的最常用的 GUI 应用程序包之一。
注意:更多信息请参考Python GUI – tkinter
菜单小部件
菜单是任何 GUI 的重要组成部分。菜单的一个常见用途是提供对各种操作的方便访问,例如保存或打开文件、退出程序或操作数据。顶级菜单显示在根或任何其他顶级窗口的标题栏下方。
句法:
menu = Menu(master, **options)
注意:更多信息请参考Python | Tkinter 中的菜单小部件
弹出菜单
弹出菜单是在用户交互时出现的上下文菜单。此菜单可以显示在客户端窗口的任何位置。下面是使用 Tkinter 库创建弹出菜单的Python代码。
#creating popup menu in tkinter
import tkinter
class A:
#creates parent window
def __init__(self):
self.root = tkinter.Tk()
self.root.geometry('500x500')
self.frame1 = tkinter.Label(self.root,
width = 400,
height = 400,
bg = '#AAAAAA')
self.frame1.pack()
#create menu
def popup(self):
self.popup_menu = tkinter.Menu(self.root,
tearoff = 0)
self.popup_menu.add_command(label = "say hi",
command = lambda:self.hey("hi"))
self.popup_menu.add_command(label = "say hello",
command = lambda:self.hey("hello"))
self.popup_menu.add_separator()
self.popup_menu.add_command(label = "say bye",
command = lambda:self.hey("bye"))
#display menu on right click
def do_popup(self,event):
try:
self.popup_menu.tk_popup(event.x_root,
event.y_root)
finally:
self.popup_menu.grab_release()
def hey(self,s):
self.frame1.configure(text = s)
def run(self):
self.popup()
self.root.bind("",self.do_popup)
tkinter.mainloop()
a = A()
a.run()
输出:
上面代码中的弹出菜单出现在右键单击时。
职能
- Menu(root):创建菜单。
- add_command(label, command):在菜单上添加命令,command 参数在单击该选项时调用函数hey()。
- add_separator():添加分隔符。
- tk_popup(x, y):将菜单发布到作为参数给定的位置
- grab_release():释放事件抓取
- bind(key, event):绑定鼠标事件。