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

Tkinter菜单栏实战
本文通过实例演示了Python中Tkinter库的菜单栏创建过程,包括下拉菜单、选择按钮和单选按钮的使用,以及如何响应鼠标事件。介绍了菜单栏的属性与方法,如tearoff、postcommand和add_command等。

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)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Dig_beautiful

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值