Python基础入门学习笔记 073 GUI的终极选择:Tkinter10


Munu组件

Tkinter提供了一个Menu组件,用于实现顶级菜单、下拉菜单和弹出菜单。

实例1:创建一个顶级菜单(或称窗口主菜单)

1 fr tkinter import * 2 3 def callback(): 4 print("被调用了") 5 6 root = Tk() 7 8 9 menubar = Menu(root)#创建一个顶级菜单 10 menubar.add_cmand(label="Hello",cmand=callback)#创建一个顶级菜单对象 11 menubar.add_cmand(label="Quit",cmand=root.quit) 12 13 #显示菜单 14 rootonfig(menu=menubar) 15 16 mainloop()

实例2:创建添加到主菜单上的下拉菜单

1 fr tkinter import * 2 3 def callback(): 4 print("被调用了") 5 6 root = Tk() 7 8 #创建一个顶级菜单 9 menubar = Menu(root) 10 11 #创建下拉菜单filemenu包含内容 12 filemenu=Menu(menubar,tearoff=False)#创建一个从属于menubar的子菜单(下拉菜单)filemenu 13 filemenu.add_cmand(label="打开",cmand=callback)#创建一个下拉菜单对象 14 filemenu.add_cmand(label="保存",cmand=callback) 15 filemenu.add_separator()#插入分隔线 16 filemenu.add_cmand(label="退出",cmand=root.quit) 17 #创建一个顶级菜单对象“文件”,filemenu从属于这个对象(或称将filemenu添加到顶级菜单“文件”中) 18 menubar.add_cascade(label="文件",menu=filemenu) 19 20 #创建另一个下拉菜单editmenu包含内容 21 editmenu=Menu(menubar,tearoff=False)#创建一个从属于menubar的子菜单(下拉菜单)editmenu 22 editmenu.add_cmand(label="剪切",cmand=callback) 23 editmenu.add_cmand(label="拷贝",cmand=callback) 24 editmenu.add_separator()#插入分隔线 25 editmenu.add_cmand(label="粘贴",cmand=callback) 26 #创建一个顶级菜单对象“编辑”,editmenu从属于这个对象(或称将editmenu添加到顶级菜单“编辑”中) 27 menubar.add_cascade(label="编辑",menu=editmenu) 28 29 #显示菜单 30 rootonfig(menu=menubar) 31 32 mainloop()

实例3:创建一个弹出菜单方法

1 fr tkinter import * 2 3 def callback(): 4 print("被调用了") 5 6 root = Tk() 7 8 def popup(event): 9 menu.post(event.x_root,event.y_root)#在此时鼠标位置弹出显示窗口 10 11 #创建一个顶级菜单menu 12 menu = Menu(root,tearoff=False) 13 14 #创建顶级菜单menu包含内容 15 menu.add_cmand(label="撤销",cmand=callback)#创建一个顶级菜单对象 16 menu.add_cmand(label="重做",cmand=callback) 17 #创建一个框架 18 frame = Frame(root,width=100,height=100) 19 frame.pack() 20 21 #将鼠标右键与popup方法绑定 22 frame.bind("<Button3>",popup) 23 24 #显示菜单 25 #rootonfig(menu=menu) 26 27 mainloop()

实例4:菜单弹出

1 fr tkinter import * 2 3 def callback(): 4 print("被调用了") 5 6 root = Tk() 7 8 def popup(event): 9 menu.post(event.x_root,event.y_root)#在此时鼠标位置弹出显示窗口 10 11 #创建一个顶级菜单menu 12 menu = Menu(root,tearoff=True) 13 14 #创建顶级菜单menu包含内容 15 menu.add_cmand(label="撤销",cmand=callback)#创建一个顶级菜单对象 16 menu.add_cmand(label="重做",cmand=callback) 17 #创建一个框架 18 frame = Frame(root,width=500,height=500) 19 frame.pack() 20 21 #将鼠标右键与popup方法绑定 22 frame.bind("<Button3>",popup) 23 24 #显示菜单 25 #rootonfig(menu=menu) 26 27 mainloop()

实例5:添加单选组件radiobutton和多选按钮checkbutton

1 fr tkinter import * 2 3 def callback(): 4 print("被调用了") 5 6 root = Tk() 7 8 #创建一个顶级菜单 9 menubar = Menu(root) 10 #创建checkbutton关联变量 11 openVar = IntVar() 12 saveVar = IntVar() 13 exitVar = IntVar() 14 #创建下拉菜单filemenu包含内容 15 filemenu=Menu(menubar,tearoff=True)#创建一个从属于menubar的子菜单(下拉菜单)filemenu 16 filemenu.add_checkbutton(label="打开",cmand=callback,variable=openVar)#创建一个下拉菜单对象 17 filemenu.add_checkbutton(label="保存",cmand=callback,variable=saveVar) 18 filemenu.add_separator()#插入分隔线 19 filemenu.add_checkbutton(label="退出",cmand=root.quit,variable=exitVar) 20 #创建一个顶级菜单对象“文件”,filemenu从属于这个对象(或称将filemenu添加到顶级菜单“文件”中) 21 menubar.add_cascade(label="文件",menu=filemenu) 22 23 #创建radiobutton关联变量 24 editVar = IntVar() 25 editVar.set(1) 26 27 #创建另一个下拉菜单editmenu包含内容 28 editmenu=Menu(menubar,tearoff=True)#创建一个从属于menubar的子菜单(下拉菜单)editmenu 29 editmenu.add_radiobutton(label="剪切",cmand=callback,variable=editVar,value=1) 30 editmenu.add_radiobutton(label="拷贝",cmand=callback,variable=editVar,value=2) 31 editmenu.add_separator()#插入分隔线 32 editmenu.add_radiobutton(label="粘贴",cmand=callback,variable=editVar,value=3) 33 #创建一个顶级菜单对象“编辑”,editmenu从属于这个对象(或称将editmenu添加到顶级菜单“编辑”中) 34 menubar.add_cascade(label="编辑",menu=editmenu) 35 36 #显示菜单 37 rootonfig(menu=menubar) 38 39 mainloop()

Menubutton组件(希望菜单按钮出现在其它位置时)

Menubutton组件是一个与Menu组件相关联的按钮,它可以放在窗口中的任意位置,并且在被按下时弹出下拉菜单

实例1:

1 fr tkinter import * 2 3 def callback(): 4 print("被调用了") 5 6 root = Tk() 7 8 #创建一个顶级菜单Menubutton按钮,设置为浮起显示(RAISED) 9 mb = Menubutton(root,text="点我",relief=RAISED) 10 11 mb.pack(side=RIGHT)#设置为右中显示 12 13 #创建下拉菜单filemenu包含内容 14 filemenu = Menu(mb,tearoff=False)#创建一个从属于mb的下拉菜单filemenu 15 filemenu.add_checkbutton(label="打开",cmand=callback,selectcolor="yellow") 16 filemenu.add_cmand(label="保存",cmand=callback)#创建一个下拉菜单对象"保存“ 17 filemenu.add_separator() 18 filemenu.add_cmand(label="退出",cmand=root.quit) 19 #显示菜单 20 mbonfig(menu=filemenu) 21 22 mainloop()

OptionMenu(选项菜单)组件

选项菜单的发明弥补了Listbox组件无法实现下拉列表框的遗憾

实例1:

1 fr tkinter import * 2 3 def callback(): 4 print("被调用了") 5 6 root = Tk() 7 8 variable = StringVar()#创建字符串变量variable 9 variable.set("one")#初始值设置为"one" 10 w = OptionMenu(root,variable,"one","two","three") 11 pack() 12 13 mainloop()

实例2:多个选项添加到选项菜单中

1 fr tkinter import * 2 3 def callback(): 4 print("被调用了") 5 6 root = Tk() 7 8 OPTIONS = [ 9 "Hadley", 10 "小土豆", 11 "yiwofeiye", 12 "RAN" 13 ] 14 15 variable = StringVar()#创建字符串变量variable 16 variable.set(OPTIONS[0])#初始值设置为"one" 17 w = OptionMenu(root,variable,*OPTIONS) 18 pack() 19 20 def callback(): 21 print(variable.get()) 22 23 Button(root,text="点我",cmand=callback).pack() 24 25 mainloop()



上一篇:Python基础入门学习笔记 054 论一只爬虫的自我修养2:实战

下一篇:Python基础入门学习笔记 055 论一只爬虫的自我修养3:隐藏


Python
Copyright © 2002-2019 k262电脑网 www.k262.cn 皖ICP备2020016292号
温馨提示:部分文章图片数据来源与网络,仅供参考!版权归原作者所有,如有侵权请联系删除!QQ:251442993 热门搜索 网站地图