python之 tkinter中菜单栏快速学习(菜单栏,弹出菜单等)

mac2024-03-19  30

python之tkinter中菜单栏的快速学习 本文主要讲述菜单栏的一些应用,附上代码,供大家学习。

import tkinter#导入tkinter库 top=tkinter.Tk()#创建一个主窗口 top.geometry('400x800+0+0')#指定主窗口大小 top.wm_title('Menu菜单功能的实现') #设置标题名称 main_m=tkinter.Menu(top)#创建主菜单 #-----------------------------------------------------------# item_File=tkinter.Menu(main_m,tearoff=0) #创建菜单,tearoff=0是关闭第0行虚线 for i in ['New','Open','Save','Save As']:#利用for循环逐一给菜单增添下来菜单 item_File.add_command(label=i)#label是设置下拉菜单的名称 item_File.add_separator() #指定分隔线 for i in ['Option1','Option2','Option3','Option14']:#利用for循环逐一给菜单增添下来菜单 item_File.add_checkbutton(label=i)#创建选择按钮菜单,可多选 item_File.add_separator() #指定分隔线 for i in ['Option1','Option2','Option3','Option4']:#利用for循环逐一给菜单增添下来菜单 item_File.add_radiobutton(label=i)#创建单选按钮菜单,只能单选 main_m.add_cascade(label='File',menu=item_File)#级连 #-----------------------------------------------------------# item_Edit=tkinter.Menu(main_m,tearoff=0) for i in ['Copy','Cut','Paste']: item_Edit.add_command(label=i) main_m.add_cascade(label='Edit',menu=item_Edit)#级连 #------------------------------------------------------------# def f(): global top,jump_main #定义全局变量 tkinter.Label(top,text=top.winfo_pointerxy()).grid(row=0,column=0) #或者用pack()会将坐标直接显示在中间,并且一直累积下去 #winfo_ponterxy()是显示坐标值 def abc(xyz): jump_main.post(xyz.x,xyz.y)#post为弹出菜单 #-----------------------------------------------------------# jump_main=tkinter.Menu(top,tearoff=0) for i in ['Refresh','Copy','Paste','Exit']:#利用for循环逐一给菜单增添下来菜单 jump_main.add_command(label=i) #label是设置下拉菜单的名称 jump_main.add_command(label='Display',command=f) top.bind('<Button-3>',abc)#bind绑定事件,点击鼠标右键执行相应函数 top['menu']=main_m#指定顶层菜单 top.mainloop()

另外, 关于菜单栏还有一些属性,如下: activebackground,鼠标位于组件上方时,显示组件背景颜色 activeborderwidth, activeforeground,鼠标位于组件上方时,显示组件背景颜色 background,背景颜色 borderwidth,选择边缘的宽度,默认值为2像素点宽 cursor,指出鼠标形状 disabledforeground, font,指出文本的字体字号 foreground,前景颜色 postcommand,可将这个选项设置为一个函数,当用户点击菜单时调用函数 relief,指出组件风格,默认为flat selectcolor,指定选择按钮或单选按钮的显示颜色 tearoff,设置为0,关闭菜单项上第0行的虚线 tearoffcommand,菜单独立被触发时的回调 title,设置控件标题 等。

菜单设置的一些方法及命令: #添加一个子菜单 option为配置选项 add_cascade(option…) #添加一个切换按钮 option为配置选项 add_checkbutton(option…) #添加一个功能按钮 option为配置选项 add_command(option…) #添加一个单选按钮 option为配置选项 add_radiobutton(option…) #添加一个分割线 add_separator() #删除index1 到 index2之间的选项 delete(index1,index2) #在指定位置插入一个子菜单 insert_cascade(index,option…) #在指定位置插入一个切换按钮 insert_checkbutton(index,option…) #在指定位置插入一个功能按钮 insert_command(index,option…) #在指定位置插入一个单选按钮 insert_radiobutton(index,option…) #在指定位置插入一个分割线 insert_separator(index) #在窗口指定位置弹出菜单 post(x,y) #获取个选项的类型 type(index) #获取某个选项距离菜单顶部的偏移量 yposition(n)

最新回复(0)