>>进阶
Menu
代码1:
import tkinter as tk
win = tk.Tk()
menu = tk.Menu(win)
filemenu = tk.Menu(menu, tearoff=0)
for i in range(5):
filemenu.add_command(label=str(i), command=None)
# 二级menu内容插入
filemenu.insert_command(1, label='1000', command=None) # 在位置1之前加入
filemenu.insert_command(2, label='2000', command=None)
filemenu.insert_command(3, label='3000', command=None)
# 插入分隔符
filemenu.insert_separator(1) # 在位置1之前插入分隔符
filemenu.insert_separator(5) # 在位置5之前插入分隔符
# 二级menu内容删除
filemenu.delete(6, 9) # 删除位置6~9的内容
filemenu.delete(0) # 删除位置0
menu.add_cascade(label='Language', menu=filemenu)
win['menu'] = menu
win.mainloop()
代码2:
import tkinter as tk
win = tk.Tk()
menu = tk.Menu(win) # 创建顶层菜单
filemenu = tk.Menu(menu, tearoff=0) # 创建二级菜单
def printIterm():
print('vPython=', vPython.get())
print('vPHP=', vPHP.get())
print('vCPP=', vCPP.get())
print('vC=', vC.get())
print('vJava=', vJava.get())
vPython = tk.StringVar()
vPHP = tk.StringVar()
vCPP = tk.StringVar()
vC = tk.StringVar()
vJava = tk.StringVar()
values = {'Python': vPython, 'PHP': vPHP, 'CPP': vCPP, 'C': vC, 'Java': vJava}
for k, v in values.items():
filemenu.add_checkbutton(label=k, variable=v, command=printIterm)
menu.add_cascade(label='Language', menu=filemenu)
win['menu'] = menu # 等用于win.config(menu=menu)
win.mainloop()
代码3:
import tkinter as tk
win = tk.Tk()
menu = tk.Menu(win)
filemenu = tk.Menu(menu, tearoff=0)
def printItem():
print('Vtemp=', Vtemp.get())
values = ['Pyhon', 'Java', 'C++', 'C', 'PHP']
Vtemp = tk.StringVar()
for items in values:
filemenu.add_radiobutton(label=items, variable=Vtemp, command=printItem)
menu.add_cascade(label='Language', menu=filemenu)
win['menu'] = menu
win.mainloop()