Python Tkinter Menu控件使用详解
简介
Tkinter是Python语言自带的图像界面库。其中,Menu控件是Tkinter库中一个常用的控件,用于创建菜单。
Python Tkinter Menu控件使用详解,将从以下几点进行讲解:
- Menu控件的基本属性
- Menu控件的创建与使用
- Menu控件的事件绑定
- Menu控件的示例说明
Menu控件的基本属性
1. Menu控件的基本语法
menu = tk.Menu(menubar, options)
其中,menubar
为菜单的父容器,options
为可选参数,用于设置菜单的属性。
2. Menu控件的常用选项
下面列出了常用的Menu控件选项:
title
: 菜单的标题,默认为空tearoff
: 菜单是否可以被分离,0代表不可以menu
: 菜单项的子菜单,默认为None
Menu控件的创建与使用
以下代码演示了如何创建一个简单的菜单:
import tkinter as tk
root = tk.Tk()
menubar = tk.Menu(root)
filemenu = tk.Menu(menubar, tearoff=0)
filemenu.add_command(label="Open", command=donothing)
filemenu.add_command(label="Save", command=donothing)
filemenu.add_separator()
filemenu.add_command(label="Exit", command=root.quit)
menubar.add_cascade(label="File", menu=filemenu)
editmenu = tk.Menu(menubar, tearoff=0)
editmenu.add_command(label="Undo", command=donothing)
menubar.add_cascade(label="Edit", menu=editmenu)
helpmenu = tk.Menu(menubar, tearoff=0)
helpmenu.add_command(label="About", command=donothing)
menubar.add_cascade(label="Help", menu=helpmenu)
root.config(menu=menubar)
root.mainloop()
这份代码创建了一个包含三个菜单(File, Edit, Help)的菜单栏,其中File菜单中包含有三个菜单项(Open, Save, Exit),Edit菜单包含有一个菜单项(Undo),Help菜单包含有一个菜单项(About)。
Menu控件的事件绑定
以下代码演示了如何给菜单项绑定事件:
import tkinter as tk
def donothing():
filewin = tk.Toplevel(root)
button = tk.Button(filewin, text="Do nothing button")
button.pack()
root = tk.Tk()
menubar = tk.Menu(root)
filemenu = tk.Menu(menubar, tearoff=0)
filemenu.add_command(label="Open", command=donothing)
filemenu.add_command(label="Save", command=donothing)
filemenu.add_separator()
filemenu.add_command(label="Exit", command=root.quit)
menubar.add_cascade(label="File", menu=filemenu)
editmenu = tk.Menu(menubar, tearoff=0)
editmenu.add_command(label="Undo", command=donothing)
menubar.add_cascade(label="Edit", menu=editmenu)
helpmenu = tk.Menu(menubar, tearoff=0)
helpmenu.add_command(label="About", command=donothing)
menubar.add_cascade(label="Help", menu=helpmenu)
root.config(menu=menubar)
root.mainloop()
这份代码创建了一个菜单栏,其中File菜单的Open、Save、Exit三个菜单项都绑定了同一个事件donothing()
。在这个事件中,定义了一个新窗口,并在新窗口中创建一个按钮。
Menu控件的示例说明
示例一
以下代码演示了如何创建一个鼠标右键菜单:
import tkinter as tk
def right_click(event):
menu.post(event.x_root, event.y_root)
root = tk.Tk()
menu = tk.Menu(root, tearoff=0)
menu.add_command(label="Undo", command=lambda: print("Undo"))
menu.add_command(label="Redo", command=lambda: print("Redo"))
text = tk.Text(root)
text.pack()
text.bind("<Button-3>", right_click)
root.mainloop()
这份代码创建了一个文本框,当鼠标右键单击文本框时,将会弹出一个包含Undo和Redo两个菜单项的菜单。
示例二
以下代码演示了如何创建一个二级菜单:
import tkinter as tk
def donothing():
filewin = tk.Toplevel(root)
button = tk.Button(filewin, text="Do nothing button")
button.pack()
root = tk.Tk()
menubar = tk.Menu(root)
filemenu = tk.Menu(menubar, tearoff=0)
filemenu.add_command(label="Open", command=donothing)
filemenu.add_command(label="Save", command=donothing)
filemenu.add_separator()
submenu = tk.Menu(filemenu, tearoff=0)
submenu.add_command(label="Submenu1", command=donothing)
submenu.add_command(label="Submenu2", command=donothing)
filemenu.add_cascade(label="Submenu", menu=submenu)
filemenu.add_command(label="Exit", command=root.quit)
menubar.add_cascade(label="File", menu=filemenu)
editmenu = tk.Menu(menubar, tearoff=0)
editmenu.add_command(label="Undo", command=donothing)
menubar.add_cascade(label="Edit", menu=editmenu)
helpmenu = tk.Menu(menubar, tearoff=0)
helpmenu.add_command(label="About", command=donothing)
menubar.add_cascade(label="Help", menu=helpmenu)
root.config(menu=menubar)
root.mainloop()
这份代码创建了一个菜单栏,其中File菜单中包含有三个菜单项和一个二级菜单(Submenu)。当单击Submenu菜单时,将会展开一个菜单,其中包含有Submenu1和Submenu2两个菜单项。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python Tkinter Menu控件使用详解 - Python技术站