当前位置: 首页 > news >正文

湖北做网站公司建筑人才网站哪个比较好

湖北做网站公司,建筑人才网站哪个比较好,wordpress主题使用帮助,公司网站建设费怎么写分录好久没有更新了,今天我来领大家熟悉一下Menu组件 1.认识、了解Menu 什么是Menu menu组件是tkinter中的菜单组件,通过该组件,开发者可以为窗口设计菜单和工具栏等。(ttk还提供了treeview树形菜单,python遍历目录的两种…

好久没有更新了,今天我来领大家熟悉一下Menu组件

1.认识、了解Menu

什么是Menu

menu组件是tkinter中的菜单组件,通过该组件,开发者可以为窗口设计菜单和工具栏等。(ttk还提供了treeview树形菜单,python遍历目录的两种方法_python 遍历目录-CSDN博客,这篇博客提到过)

Menu的好处

有人会问,为什么要用Menu呢?如果我们要模拟右键菜单

可以看到,菜单中有很多按钮。可能有人就会问:你用一个Frame容器加上很多Button按钮不就得了?

可以,你去试试,看得多麻烦=),而且必须得是熟练运用tkinter的人才行

(就像你跑步,同是跑一千米,你是穿凉鞋跑呢?还是运动鞋跑呢?爱穿凉鞋跑的在评论区里回复我爱穿凉鞋跑)

但是,如果用Menu,就简单多了。你所需写的代码还不到一个屏幕那么宽

菜单的使用场景

1.CSDN的文章目录

大家在看我写的文章的时候,左边的那部分就是目录菜单


2.Windows的开始菜单

3.Python编辑器上的菜单

4.scratch积木选择器

除了这些,还有很多。。。。。

接下来,我就教大家如何使用Menu,教你制作出属于自己的菜单!

初用Menu

语法如下

Menu(win,option)

win表示父容器,option表示其中的参数

我们现在写一个简单的程序,来让大家体验一下

from tkinter import *
win=Tk()
menu1=Menu(win)
menu1.add_command(label='游戏')
menu1.add_command(label='程序')
menu1.add_command(label='帮助')
win.config(menu=menu1) #注意最好不要menu=menu
win.mainloop()

运行结果

add_command可以添加命令,实现类似按钮的功能

这里讲解一下Menu常用方法

 方法含义
add_command()可以添加命令,实现类似按钮的功能
add_cascade()添加父菜单,可以由此创建子菜单
add_separator()添加下划线,便于整理
post()在指定位置弹出菜单(可以以此来设计右键菜单)
delete(a,b)删除a~b的所有菜单项

这些就够用了,不够可以自行查搜

Menu高阶用法

现在,教大家两个Menu的高阶用法,分别为二阶菜单和右键菜单

1.二阶菜单

好,如果大家仔细看过上面的那张右键菜单图片,就会发现它是一个嵌套。这就是二阶菜单

我们现在就来做一个(这里做的是下拉菜单)

(1)创建顶层菜单

from tkinter import *
win=Tk()
menu1=Menu(win)
menu1.add_cascade(label='游戏')
win.config(menu=menu1)
win.mainloop()

效果

(2)创建二级菜单

修改代码

menu1.add_cascade(label='游戏',menu=menu2)

这样,他就产生了一个二阶菜单

那我们需要创建隶属于menu1的二阶菜单menu2

menu2=Menu(menu1,tearoff=False)
menu1.add_cascade(label='游戏',menu=menu2)
menu2.add_command(label='简单')
menu2.add_command(label='普通')
menu2.add_command(label='困难')
menu2.add_command(label='噩梦')

这里需要用到tearoff,不然会出现BUG(如果你不用tearoff,下拉菜单会出现一行虚线,如你点击它,就会出现BUG)

何为tearoff

tearoff是设置菜单能否从窗口分离,默认值为True,所以我们要用False,避免BUG产生。

全部代码

代码
from tkinter import *
win=Tk()
menu1=Menu(win)
menu2=Menu(menu1,tearoff=False)
menu1.add_cascade(label='游戏',menu=menu2)
menu2.add_command(label='简单')
menu2.add_command(label='普通')
menu2.add_command(label='困难')
menu2.add_command(label='噩梦')
win.config(menu=menu1)
win.mainloop()
运行结果

如果大家利用这个语法充分,就可以做出三级菜单,这里以Windows95的菜单设计为例

右键菜单

我们的任务是学会这个

(1)制作指定位置弹出菜单函数

def PopoutMenu(win, menu): #w为父窗口,menu为MENU菜单def popout(event):menu.post(event.x + win.winfo_rootx(), event.y + win.winfo_rooty()) #指定位置弹出菜单win.update()   #更新界面win.bind('<Button-3>', popout) #如果按下右键,执行弹出菜单函数

大家仔细看注释、代码,自行领会

(2)制作菜单

from tkinter import *
main_win=Tk()
#right_key
right_key_menu=Menu(main_win,tearoff=False)
create_new_file_menu=Menu(right_key_menu,tearoff=False)
watch_menu=Menu(right_key_menu,tearoff=False)
sort_menu=Menu(right_key_menu,tearoff=False)
right_keys=["查看","排序方式","刷新","新建","设置","个性化"]
for i in right_keys:if i =='新建':right_key_menu.add_separator()right_key_menu.add_cascade(label='新建',menu=create_new_file_menu)elif i=='设置':right_key_menu.add_separator()right_key_menu.add_cascade(label='设置')elif i=='查看':right_key_menu.add_cascade(label='查看',menu=watch_menu)elif i=='排序方式':right_key_menu.add_cascade(label='排序方式',menu=sort_menu)else:right_key_menu.add_cascade(label=i)creates=["文件夹","快捷方式","文本文档"]
for i in creates:create_string=iif i=='文本文档':create_new_file_menu.add_separator()create_new_file_menu.add_command(label=f"{create_string}")watches=["大图标","中等图标","小图标"]
for i in watches:watch_menu.add_command(label=i)
sort_menu.add_command(label="项目类型")
PopoutMenu(main_win,right_key_menu)
main_win.mainloop()

全部代码

代码
def PopoutMenu(win, menu): #w为父窗口,menu为MENU菜单def popout(event):menu.post(event.x + win.winfo_rootx(), event.y + win.winfo_rooty()) #指定位置弹出菜单win.update()   #更新界面win.bind('<Button-3>', popout) #如果按下右键,执行弹出菜单函数
from tkinter import *
main_win=Tk()
#right_key
right_key_menu=Menu(main_win,tearoff=False)
create_new_file_menu=Menu(right_key_menu,tearoff=False)
watch_menu=Menu(right_key_menu,tearoff=False)
sort_menu=Menu(right_key_menu,tearoff=False)
right_keys=["查看","排序方式","刷新","新建","设置","个性化"]
for i in right_keys:if i =='新建':right_key_menu.add_separator()right_key_menu.add_cascade(label='新建',menu=create_new_file_menu)elif i=='设置':right_key_menu.add_separator()right_key_menu.add_cascade(label='设置')elif i=='查看':right_key_menu.add_cascade(label='查看',menu=watch_menu)elif i=='排序方式':right_key_menu.add_cascade(label='排序方式',menu=sort_menu)else:right_key_menu.add_cascade(label=i)creates=["文件夹","快捷方式","文本文档"]
for i in creates:create_string=iif i=='文本文档':create_new_file_menu.add_separator()create_new_file_menu.add_command(label=f"{create_string}")watches=["大图标","中等图标","小图标"]
for i in watches:watch_menu.add_command(label=i)
sort_menu.add_command(label="项目类型")
PopoutMenu(main_win,right_key_menu)
main_win.mainloop()
运行结果

总结

我的这篇文章介绍了python tkinter Menu,带大家深入了解了他的用法,带大家体会Menu的功能强大之处

望大家喜欢(❤ ω ❤)

http://www.sczhlp.com/news/76566/

相关文章:

  • 网站建设捌金手指花总三wordpress 首页关键词
  • wordpress手机版怎么做中小型企业网站优化案例
  • 晋城网站建设公司排名友链对网站seo有帮助吗
  • 织梦增加网站英文名称商城手机网站制作
  • 什么软件做网站好城乡建设规划网站
  • 虚拟币交易网站源码资料库网站开发报价
  • 网站建设 验证码无广告免费的影视软件
  • 网站显示内容不显示不出来贵阳网站备案核验点照相
  • 有后台网站怎么做赚钱小程序
  • 网站维护 费用网上代理 建网站
  • 云南建设银行官方网站正规的郑州网站建设
  • 宁波网站推广公司深圳品牌设计机构
  • 资讯网站策划怎么写wordpress plugins插件
  • 广州网站建设大公司国家建设管理信息网站
  • 织梦网站防止注入4mm钢筋网片价格
  • 穷游网站 做行程 封面wordpress外部调用后台
  • 如何建立个人免费网站wordpress 图床
  • 长沙网站排名推广asp.net网站开发工程师(c
  • 中国做外贸网站有哪些问题上海网站建设运营站霸网络
  • 怎么看网站是dede模板怎么让谷歌收录我的网站
  • 需要建设一个什么样的网站做网站推广一般多少钱
  • 网站建设公司品牌梅州做网站公司
  • 全屏响应式网站怎么经营团购网站
  • 南山网站设计费用ae模板下载网站推荐
  • 河南建筑工程有限公司知乎推广优化
  • 织梦网站建设网页给人做ppt的网站吗
  • 软件开发文档工具洛阳网站建设seo
  • 政务中心网站自身建设app应用开发的价位
  • 南昌h5建站网站建设策划书范文6篇
  • 绿色环保材料网站模板下载网站建设的主要内容包括