阅读目录
-
Menu 菜单控件
-
Menubutton 菜单按钮控件
- OptionMenu 选项菜单
- Canvas 画布控件
Menu:
说明:菜单控件,显示菜单栏,下拉菜单和弹出菜单
属性:创建一个顶级菜单,需要先创建一个菜单实例,然后使用add()方法将命令和其他子菜单添加进去
创建一个下拉菜单(或者其他的子菜单),方法是一样的,最主要的区别是它们最后需要添加到主菜单上(而不是窗口上)
方法:add_cascade(label=' ',...)
add_command(label=' ',...)
from tkinter import * root = Tk() root.title('山丘') root.geometry('200x200') l = Label(root,text='',bg='yellow') l.pack() num=0 def show(): global num l.config(text=num) num+=1 menubar = Menu(root) #创建一个顶级的窗口 #创建一个下拉菜单'File',然后让它添加到顶级窗口上
filemenu = Menu(menubar,tearoff=1) #tearoff是在'File'菜单上加了一个小横杠,为0就是不加,和平时看到的一样
menubar.add_cascade(label='File',menu=filemenu) filemenu.add_command(label='New',command=show) filemenu.add_command(label='Open',command=show) filemenu.add_command(label='Save',command=show) filemenu.add_separator() #这个是分割线
filemenu.add_command(label='Rxit',command=root.quit) editmenu = Menu(menubar,tearoff=0)#创建一个下拉菜单'Edit',然后让它添加到顶级窗口上
menubar.add_cascade(label='Edit',menu=editmenu) editmenu.add_command(label='Cut',command=show) editmenu.add_command(label='Copy',command=show) editmenu.add_command(label='Paste',command=show) root.config(menu=menubar)#显示菜单,
mainloop()
点击小横杠后的结果:
这个菜单不仅可以添加常见的命令菜单,和可以添加单选或多选按钮
from tkinter import * root = Tk() def show(): print('被调用了') #创建一个顶级的菜单
menubar = Menu(root) #创建checkbutton关联变量
openVar = IntVar() saveVar = IntVar() exitVar = IntVar() #创建一个下拉菜单‘文件’,然后将它添加到顶级的菜单上
filemenu = Menu(menubar,tearoff = True) menubar.add_cascade(label='文件',menu=filemenu) filemenu.add_checkbutton(label='打开',command=show,variable=openVar) filemenu.add_checkbutton(label='保存',command=show,variable=saveVar) filemenu.add_checkbutton(label='退出',command=root.quit,variable=exitVar) #创建radiobutton关联变量
editVar = IntVar() editVar.set(1) #创建一个下拉菜单‘编辑’,然后将它添加到顶级的菜单上
editmenu = Menu(menubar,tearoff = False) menubar.add_cascade(label='编辑',menu=editmenu) editmenu.add_radiobutton(label='剪切',command=show,variable=editVar,value=1) editmenu.add_radiobutton(label='拷贝',command=show,variable=editVar,value=2) editmenu.add_radiobutton(label='粘贴',command=show,variable=editVar,value=3) root.config(menu=menubar)#显示菜单
mainloop()
结果:
Menubutton:
说明:菜单按钮控件,由于显示菜单项,它可以放在窗口的任意位置,并弹出下拉菜单
from tkinter import * root = Tk() def callback(): print('被调用了') mb = Menubutton(root,text='点我',relief = RAISED)#这个是样式
mb.pack() filemenu = Menu(mb) filemenu.add_command(label= '打开',command=callback) filemenu.add_command(label='保存',command=callback) filemenu.add_separator() filemenu.add_command(label='退出',command=callback) mb.config(menu=filemenu) mainloop()
结果:
OptionMenu:
说明:这是下拉菜单的改版,主要用于记录用户选择了什么
from tkinter import * root = Tk() variable = StringVar() variable.set('one') w = OptionMenu(root,variable,'one','two','there') w.pack() def show(): print(variable.get()) Button(root,text='点我',command=show).pack() mainloop()
结果:
还有就是将很多选项添加到选项菜单中
from tkinter import * root = Tk() l = Label(root,text='',bg='yellow') l.pack() OPTIONS = ['A','B','C','D','E'] variable = StringVar() variable.set(OPTIONS[0]) w = OptionMenu(root,variable,*OPTIONS)#这里注意
w.pack() def show(): l.config(text=variable.get()) Button(root,text='点