一.工具栏
from tkinter import *
root = Tk()
menubar = Menu(root)
def callback():
pass
filemenu = Menu(menubar,tearoff=False)
filemenu.add_command(label='打开',command=callback)
filemenu.add_command(label='保存',command=callback)
filemenu.add_separator()
filemenu.add_command(label='退出',command=root.quit)
menubar.add_cascade(label='文件',menu=filemenu)
editmenu = Menu(menubar,tearoff='False')
editmenu.add_command(label="剪贴",command=callback)
editmenu.add_command(label="拷贝",command=callback)
editmenu.add_command(label="粘贴",command=callback)
menubar.add_cascade(label="编辑",menu=editmenu)
root.config(menu=menubar)
mainloop()
我们一开始要创建一个总的menu
,最后将各个工具栏添加到这个menubar
中
第一个是filemenu
,来自menubar
,这个tearoff
表示这个菜单是否能从这个工具栏中取下
最后在tearmenu
中添加command
,filemenu.add_command(label='打开',command=callback)
separator
表示分割线
最后表示这个filemenu
是一个menubar
的下拉菜单,要给menubar
添加一个cascade
最后将这个总的menubar
添加到root
中,这是比其他组件多出来的一步,root.config(menu=menubar)
二.右键下拉菜单
from tkinter import *
root = Tk()
menubar = Menu(root)
def callback():
pass
menubar.add_command(label="撤销",command=callback)
menubar.add_command(label="重做",command=callback)
frame = Frame(root,width=512,height=512)
frame.pack()
def popup(event):
menubar.post(event.x_root,event.y_root)
frame.bind("<Button-3>",popup)
mainloop()
这里做了一个框架,在这个框架里,我们和鼠标右键绑定,点击右键,munebar
弹出
三.checkbutton和radiobutton显示在菜单中
from tkinter import *
root = Tk()
menubar = Menu(root)
def callback():
pass
openVar = IntVar()
saveVar = IntVar()
quitVar = IntVar()
filemenu = Menu(menubar,tearoff=False)
filemenu.add_checkbutton(label='打开',command=callback,variable=openVar)
filemenu.add_checkbutton(label='保存',command=callback,variable=saveVar)
filemenu.add_separator()
filemenu.add_checkbutton(label='退出',command=root.quit,variable=quitVar)
menubar.add_cascade(label='文件',menu=filemenu)
editVar = IntVar()
editmenu = Menu(menubar,tearoff='False')
editmenu.add_radiobutton(label="剪贴",command=callback,variable=editVar,value=1)
editmenu.add_radiobutton(label="拷贝",command=callback,variable=editVar,value=2)
editmenu.add_radiobutton(label="粘贴",command=callback,variable=editVar,value=3)
menubar.add_cascade(label="编辑",menu=editmenu)
root.config(menu=menubar)
mainloop()
这里添加按钮是用filemenu.add_checkbutton
,他在这个menu
组件中添加一个`checkbutton
`
四.在菜单一开始就显示选择OptionMenu
from tkinter import *
OPTIONS = [
"c++",
"c",
"python"]
root = Tk()
variable = StringVar()
variable.set(OPTIONS[0])
w = OptionMenu(root,variable,*OPTIONS)
w.pack()
mainloop()
这里的菜单的显示要设置位SringVar
变量,不设置这个变量,就无法在按钮上显示文字
*OPTIONS
加*
是为了将列表的元素分开