Menu:菜单栏,用来实现下拉和弹出式菜单,点菜单后会弹出一个选项列表,用户可以从中选择
import tkinter as tk
window = tk.Tk() # 建立主窗口
window.title("My Window") # 主窗口名字
window.geometry("500x300") # 这里的乘号是小写x
Mylabel = tk.Label(window, text=' ', bg='green') # 创建并放置标签
Mylabel.pack()
counter = 0 # 定义函数功能,用来代表菜单选项的功能,这里为了操作简单,定义的功能比较简单
def do_job():
global counter
Mylabel.config(text='do' + str(counter))
counter += 1
Mymenu = tk.Menu(window) # 创建一个菜单栏,把他理解成一个容器,在窗口的上方
filemenu = tk.Menu(Mymenu, tearoff=0) # 创建File菜单项(默认不下拉,下拉内容包括New,Open,Save,Exit功能项)
Mymenu.add_cascade(label='File', menu=filemenu) # 将上面定义的空菜单命名为File,放在菜单栏中,即装入容器Mymenu中
# 在File中加入New、Open、Save等小菜单,即我们平时看到的下拉菜单,每一个小菜单对应命令操作。
filemenu.add_command(label='New', command=do_job)
filemenu.add_command(label='Open', command=do_job)
filemenu.add_command(label='Save', command=do_job)
filemenu.add_separator() # 添加一条分隔线
filemenu.add_command(label='Exit', command=window.quit) # 用tkinter里面自带的 quit()函数
editmenu = tk.Menu(Mymenu, tearoff=0) # 创建Edit菜单项,默认不下拉,tearoff=0/1表示菜单能否独立到为一个窗口
Mymenu.add_cascade(label='Edit', menu=editmenu) # 将上面定义的空菜单命名为 Edit,放在菜单栏中,装入容器Mymenu中
# 同样的在 Edit 中加入Cut、Copy、Paste等小命令功能单元,若点击这些单元,会触发do_job的功能
editmenu.add_command(label='Cut', command=do_job)
editmenu.add_command(label='Copy', command=do_job)
editmenu.add_command(label='Paste', command=do_job)
# 创建第二级菜单,即菜单项中的菜单
submenu = tk.Menu(filemenu,tearoff=0) # 在File上创建一个空的菜单Import
filemenu.add_cascade(label='Import', menu=submenu) # 给该空菜单命名为Import
submenu.add_command(label='Submenu', command=do_job) #在这个Import菜单下添加子菜单Sumenu
window.config(menu=Mymenu) # 创建菜单栏完成后,配置让菜单栏menubar显示出来
window.mainloop() # 主窗口循环显示
运行界面:
每点击按钮后,实现加1显示: