Tkinter Menu 建立弹出式菜单

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()

输出:

Tkinter Menu 建立弹出式菜单

上述第6行的iconify( )是最小化窗口,第9行的post( )方法是由popupmenu对象启动,相当于可以在鼠标光标位置(event.x_root,event.y_root)弹出此菜单。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程