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

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('',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)

你可能感兴趣的:(python)