Tkinter Menu 建立弹出式菜单
当使用Windows操作系统时,可以在桌面上单击鼠标右键,此时会弹出一个菜单,这就是弹出式菜单Popup menu,有人将此菜单称为快捷菜单。
设计这类菜单与先前需在窗口的menubar区建立菜单类别有一些差异,建立好Menu对象后,可以直接利用此对象建立指令列表,最后再单击鼠标右键操作绑定显示弹出菜单即可。
popupmenu = Menu(root, tearoff=False) #隐藏虚线分隔线
popupmenu.add_command(label = "xx", command = "yy") #建立指令列表
...
root.bind("<Button-3>", callback) #绑定单击鼠标右键显示弹出菜单
示例1
设计弹出菜单,这个弹出菜单中有两个子菜单,一个是Minimize可以将窗口缩成图标,另一个是Exit结束程序。
from tkinter import *
from tkinter import messagebox
def minimizeIcon(): # 缩小窗口为图标
print("Window minimization...")
root.iconify() # 最小化窗口
def showPopupMenu(event): # 显示弹出窗口
print("Window popup...")
popupmenu.post(event.x_root,event.y_root) # 在鼠标光标位置处弹出此菜单
# print(event.x_root," *** ",event.y_root)
# print(type(event.x_root)," *** ",type(event.y_root)) # int类型
# popupmenu.post(100,100) ############ # 窗口固定显示
root = Tk()
root.title("apidemos.com")
root.geometry("300x180")
popupmenu = Menu(root,tearoff=False) # 建立弹出窗口对象
# 在弹出菜单内建立两个指令列表
popupmenu.add_command(label="Minimize",command=minimizeIcon)
popupmenu.add_command(label="Exit",command=root.destroy)
# 单击鼠标右键绑定显示弹出菜单
root.bind("<Button-3>",showPopupMenu)
# root.config(menu=popupmenu) # 这段代码将popupmenu对象固定在窗口菜单栏
root.mainloop()
输出:
上述第6行的iconify( )是最小化窗口,第9行的post( )方法是由popupmenu对象启动,相当于可以在鼠标光标位置(event.x_root,event.y_root)弹出此菜单。