本文主要是Python tkinter Menu菜单控件介绍及使用示例。
tkinter系列文章
Python tkinter (2) —— Button标签
Python tkinter (8) ——Spinbox控件
menu
菜单控件
简单示例
创建一个编程语言菜单选项。
示例如下:
import tkinter
tk = tkinter.Tk()
tk.title('简单示例')
tk.geometry('300x200+200+20')
# 菜单条
menubar = tkinter.Menu(tk)
tk.config(menu=menubar)
# 把菜单创建到菜单条上 创建菜单选项
menu1 = tkinter.Menu(menubar, tearoff=False)
# 给菜单选项添加内容
for item in ['PHP', 'C', 'C++', 'Python', 'Go', 'JS', 'Mysql', '退出']:
if item == '退出':
menu1.add_command(label=item)
else:
menu1.add_command(label=item)
# 向菜单条上添加菜单选项
menubar.add_cascade(label='语言', menu=menu1)
tk.mainloop()
效果如下:
添加分隔线
在菜单选项上添加分隔线。
示例如下:
for item in ['PHP', 'C', 'C++', 'Python', 'Go', 'JS', 'Mysql', '退出']:
if item == '退出':
# 添加分隔线
menu1.add_separator()
menu1.add_command(label=item)
else:
menu1.add_command(label=item)
效果如下:
绑定事件
给其他语言选项上绑定一个公共方法,在退出选项上绑定退出窗口方法。
示例如下:
def comfun():
print('语言选项')
# 把菜单创建到菜单条上 创建菜单选项
menu1 = tkinter.Menu(menubar, tearoff=False)
# 给菜单选项添加内容
for item in ['PHP', 'C', 'C++', 'Python', 'Go', 'JS', 'Mysql', '退出']:
if item == '退出':
menu1.add_command(label=item, command=tk.quit)
else:
menu1.add_command(label=item, command=comfun)
效果为,点击其他语言会在控制台打印语言选项,而点击退出则会关闭窗口。
右键菜单
创建菜单条和绑定菜单选项与之前一致;之后需要绑定鼠标右键事件,
需要处理显示在点击相应坐标位置。
示例如下:
import tkinter
tk = tkinter.Tk()
tk.title('简单示例')
tk.geometry('300x200+200+20')
# 菜单条
menubar = tkinter.Menu(tk)
tk.config(menu=menubar)
# 菜单选项
menu1 = tkinter.Menu(menubar, tearoff=False)
for item in ['PHP', 'C', 'C++', 'Python', 'Go', 'JS', 'Mysql', '退出']:
menu1.add_command(label=item)
menubar.add_cascade(label='语言', menu=menu1)
# 绑定鼠标右键事件
def show_menu(event):
menubar.post(event.x_root, event.y_root)
tk.bind('<Button-3>', show_menu)
tk.mainloop()
效果如下:
总结
本文主要是Python tkinter Menu菜单控件介绍及使用示例。