【tkinter组件专栏】Menubutton:会飞雷神之术的菜单按钮
文章目录
- 一、组件简介
- 二、运用实例
- 1. Menubutton基操
- 2. 思考:用武之处
- 三、参数方法
- 1. 参数汇总
一、组件简介
Menubutton 组件,菜单按钮,它是一个与Menu组件息息相关的组件,按钮可以被放在窗口屏幕上的任意地方,并在被按下时弹出下拉菜单。
也就是说通过Menubutton,我们可以实现菜单在窗口任意位置出现,而不再局限于顶部的菜单栏。
二、运用实例
——
1. Menubutton基操
首先,我们来简单了解一下Menubutton Menu组件的配合使用
import tkinter as tk root = tk.Tk()
root.geometry('200x200')def show():print('执行中...')# 创建一个菜单按钮
mb = tk.Menubutton(root, text='编辑', relief='raised')
mb.pack(padx=10,pady=10)# 创建一个菜单实例
editmenu = tk.Menu(mb, tearoff=False)
editmenu.add_command(label='复制', command=show)
editmenu.add_command(label='剪切', command=show)
editmenu.add_command(label='粘贴', command=show)
editmenu.add_separator() # 添加分割线
editmenu.add_command(label='撤销', command=show)# 菜单按钮设置菜单显示
mb.config(menu=editmenu)root.mainloop()
运行程序,看看实际的效果。
——
2. 思考:用武之处
正如我们开始所说,Menubutton的作用就是能够让菜单出现在窗口上的任意位置。
其实在早期的tkinter中,Menubutton组件是用来实现顶级菜单的,但是自从Menu诞生之后,也基本上很少有机会使用它了。
那么我们不仅要思考,在哪些情况下适合使用Menubutton组件?我们是否需要某个菜单出现在窗口特定位置,对用户更加方便?如果是常用的一些功能,用弹出菜单代替是不是更好?
在了解这个组件的时候,我确实在思考这些问题,发现真正可能会用到Menubutton组件的场合真的不多。
当然,大佬们如果有好的想法,也恳请赐教,指点指点。
三、参数方法
——
1. 参数汇总
最后罗列一下Menubutton组件常用的参数以及用法。
参数 | 用法 |
---|---|
activebackground | 设置当 Menubutton 处于活动状态(通过 state 选项设置状态)的背景色 |
activeforeground | 设置当 Menubutton 处于活动状态(通过 state 选项设置状态)的前景色 |
anchor | 1. 控制文本(或图像)在 Menubutton 中显示的位置; 2. N, NE, E, SE, S, SW, W, NW, 或 CENTER 来定位(EWSN代表东西南北,上北下南左西右东);3. 默认值是 CENTER |
background(bg) | 设置背景颜色 |
bitmap | 指定显示到 Menubutton 上的位图 |
borderwidth(bd) | 指定 Menubutton 的边框宽度 |
compound | 1. 控制 Menubutton 中文本和图像的混合模式 ;2. 如果该选项设置为 CENTER,文本显示在图像上(文本重叠图像);3. 如果该选项设置为 BOTTOM,LEFT,RIGHT 或 TOP,那么图像显示在文本的旁边(如 BOTTOM,则图像在文本的下方) ;4. 默认值是 NONE |
cursor | 指定当鼠标在 Menubutton 上飘过的时候的鼠标样式 |
direction | 1. 默认情况下菜单是显示在按钮的下方,你可以通过修改此选项来改变这一特征 ;2. 你可以将该选项设置为 “left”(按钮的左边),“right”(按钮的右边),“above”(按钮的上方) |
disabledforeground | 指定当 Menubutton 不可用的时候前景色的颜色 |
font | 指定 Menubutton 中文本的字体 |
foreground(fg) | 设置 Menubutton 的文本和位图的颜色 |
height | 1. 设置 Menubutton 的高度; 2. 如果 Menubutton 显示的是文本,那么单位是文本单元 ;3. 如果 Menubutton 显示的是图像,那么单位是像素(或屏幕单元);4. 如果设置为 0 或者干脆不设置,那么会自动根据 Menubutton 的内容计算出高度 |
highlightbackground | 指定当 Menubutton 没有获得焦点的时候高亮边框的颜色 |
highlightcolor | 指定当 Menubutton 获得焦点的时候高亮边框的颜色 |
highlightthickness | 指定高亮边框的宽度 |
image | 1. 指定 Menubutton 显示的图片;2. 该值应该是 PhotoImage,BitmapImage,或者能兼容的对象 |
justify | 1. 定义如何对齐多行文本 ;2. 使用 LEFT,RIGHT 或 CENTER;3. 注意,文本的位置取决于 anchor 选项 ;4. 默认值是 CENTER |
menu | 1. 指定与 Menubutton 相关联的 Menu 组件 ;2. Menu 组件的第一个参数必须是 Menubutton 的实例(参考上边例子) |
padx | 指定 Menubutton 水平方向上的额外间距(内容和边框间) |
pady | 指定 Menubutton 垂直方向上的额外间距(内容和边框间) |
relief | 1. 指定边框样式;2. 默认值是 FLAT;3. 可以设置为 SUNKEN,RAISED,GROOVE,RIDGE |
state | 1. 指定 Menubutton 的状态 ;2. 默认值是 NORMAL;3. 另外你还可以设置 ACTIVE 或 DISABLED |
takefocus | 指定使用 Tab 键可以将焦点移到该 Button 组件上(这样按下空格键也相当于触发按钮事件) |
text | 1. 指定 Menubutton 显示的文本;2. 文本可以包含换行符 |
textvariable | 1. Menubutton 显示 Tkinter 变量(通常是一个 StringVar 变量)的内容;2. 如果变量被修改,Menubutton 的文本会自动更新 |
underline | 1. 跟 text 选项一起使用,用于指定哪一个字符画下划线(例如用于表示键盘快捷键);2. 默认值是 -1;3. 例如设置为 1,则说明在 Menubutton 的第 2 个字符处画下划线 |
width | 1. 设置 Menubutton 的宽度;2. 如果 Menubutton 显示的是文本,那么单位是文本单元;3. 如果 Menubutton 显示的是图像,那么单位是像素(或屏幕单元);4. 如果设置为 0 或者干脆不设置,那么会自动根据 Menubutton 的内容计算出宽度 |
wraplength | 1. 决定 Menubutton 的文本应该被分成多少行 ;2. 该选项指定每行的长度,单位是屏幕单元;3. 默认值是 0 |
【tkinter组件专栏】Menubutton:会飞雷神之术的菜单按钮相关推荐
- 【tkinter组件专栏】LabelFrame:规划布局frame的小老弟
文章目录 一.组件简介 二.运用实例 1. LabelFrame基操 三.参数方法 1. 参数汇总 一.组件简介 光从名字上来看,我们就知道LabelFrame与Frame组件之间之间有着" ...
- 【tkinter组件专栏】Scrollbar:横滚竖滚滚动条
文章目录 一.组件简介 二.运用实例 1. Scrollbar基操 2. 重重重点讲解 三.参数方法 1. 参数汇总 2. 方法汇总 一.组件简介 Scrollbar组件,滚动条,通常用于滚动一些组件 ...
- 【tkinter组件专栏】Frame:承载规划布局的框架
文章目录 一.组件简介 二.运用实例 1. Frame指定区域 2. Frame划分区域 3. Frame装饰作用 三.参数方法 1. 参数汇总 一.组件简介 Frame组件,框架,实际上是在屏幕上的 ...
- 架构组件专栏 | ViewModel深入浅出
本文是架构组件专栏的开篇文章,因此在文章开头我打算花些笔墨谈谈什么是架构组件以及我为什么打算写这个专栏. 谷歌官方为了帮助开发者加速开发并构建高质量的应用,推出了Jetpack.正如上图你所看到的,J ...
- jQuery EasyUI API 中文文档 - 菜单按钮(MenuButton)
MenuButton 菜单按钮 风流涕淌 翻译.不当之处,敬请指正.转载请保留出处! 扩展自 $.fn.linkbutton.defaults.用 $.fn.menubutton.default ...
- Tkinter 组件详解(十):Scale
Tkinter 组件详解之Scale Scale(刻度)组件看起来像是一个带数据的 Scrollbar(滚动条)组件,但事实上它们是不同的两个东东.Scale 组件允许用于通过滑动滑块来选择一个范围内 ...
- Tkinter 组件详解(一):Label
Tkinter 组件详解之Label Label(标签)组件用于在屏幕上显示文本或图像.Label 组件仅能显示单一字体的文本,但文本可以跨越多行.另外,还可以为其中的个别字符加上下划线(例如用于表示 ...
- Tkinter 组件详解(七):Entry
Tkinter 组件详解之Entry Entry(输入框)组件通常用于获取用户的输入文本. 何时使用 Entry 组件? Entry 组件仅允许用于输入一行文本,如果用于输入的字符串长度比该组件可显示 ...
- Tkinter 组件详解(八):Listbox
Tkinter 组件详解之Listbox Listbox(列表框)组件用于显示一个选择列表.Listbox 只能包含文本项目,并且所有的项目都需要使用相同的字体和颜色.根据组件的配置,用户可以从列表中 ...
最新文章
- 浏览器加载、解析、渲染的过程
- schema.sql自动写入。由于版本问题。2.x之后。就不行了。·
- ArcEngine开发中“错误类型****未定义构造函数”
- mysql游标循环的使用
- 石川es6课程---4、箭头函数
- java创建型_Java创建型模式
- java中string范围_java中long parseLong(String s)方法中string(十进制数字)的范围?
- keil uvisoin软件出现闪退和打开工程以前添加的c文件上面出现黄色感叹号
- python更换tkinter图标样式
- C++设计模式从入门到精通——实例说明
- java工程师优秀简历模板,这原因我服了
- Android 11.0 12.0SystemUI修改状态栏电池图标样式为横屏显示
- java输入输出流_Java学习之输入输出流
- 网络——数字数据编码
- ReCap 360 photo照片建模技术的又一个例子
- 静态工作点 (直流偏置点)
- 写一个matlab 滤波函数
- 值得拥有并收藏的 3个安卓/鸿蒙手机解锁软件
- 汉诺塔(java版)
- git 进行内网-外网地址切换