python menubutton_Python Tkinter窗口组件:Menubutton

## 简介

Menubutton 组件是一个与 [Menu](https://bbs.266.la/forum.php?mod=viewthread&tid=1613) 组件相关联的按钮,它可以放在窗口中的任意位置,并且在被按下时弹出下拉菜单。

## 何时使用 Menubutton 组件?

在 Tkinter 的早期版本,Menubutton 组件主要是用于实现顶级菜单,但现在我们直接用 Menu 组件就可以实现了。因此,现在该组件适用于你希望菜单按钮出现在其他位置的时候。

## 用法

创建一个 Menubutton 组件,并创建一个 Menu 组件与之相关联:

```

# coding:utf8

from tkinter import *

# 制作Menubutton

class App:

def __init__(self, master):

frame = Frame(master).pack()

# 实例化一个Menubutton对象, 可以把它理解为纯粹的button按键,只是这个能绑定菜单。

mb = Menubutton(frame, text="我是菜单", relief=RAISED)

mb.pack(padx=10, pady=10)

# 实例化一个menu对象,添加菜单

menubutton = Menu(mb, tearoff=False)

menubutton.add_command(label="打开")

menubutton.add_command(label="保存")

menubutton.add_command(label="退出", command=root.quit)

# 绑定

mb.config(menu=menubutton)

root = Tk()

win = App(root)

root.mainloop()

```

(解析:实例化一个 Menubutton,mb = Menubutton(root,text=“点我”,relief=RAISED),这些选项是跟 button 是一样的,第三个选项 relief 就是设置他的样式,"raised"表示按钮是一个浮起的样式,还有一个"sunken"表示下凹

## 参数

**Menubutton(master=None, \*\*options) (class)**

master – 父组件

**options – 组件选项,下方表格详细列举了各个选项的具体含义和用法:

| **选项** | **含义** |

| --------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |

| activebackground | 设置当 Menubutton 处于 "active" 状态(通过 state 选项设置状态)的背景色 |

| activeforeground | 设置当 Menubutton 处于 "active" 状态(通过 state 选项设置状态)的前景色 |

| anchor | 1. 控制文本(或图像)在 Menubutton 中显示的位置\n2. "n", "ne", "e", "se", "s", "sw", "w", "nw", 或 "center" 来定位(ewsn 代表东西南北,上北下南左西右东)\n3. 默认值是 "center" |

| background | 设置背景颜色 |

| bg | 跟 background 一样 |

| bitmap | 指定显示到 Menubutton 上的位图 |

| borderwidth | 指定 Menubutton 的边框宽度 |

| bd | 跟 borderwidth 一样 |

| compound | 1. 控制 Menubutton 中文本和图像的混合模式\n2. 如果该选项设置为 "center",文本显示在图像上(文本重叠图像)\n3. 如果该选项设置为 "bottom","left","right" 或 "top",那么图像显示在文本的旁边(如 "bottom",则图像在文本的下方)\n4. 默认值是 NONE |

| cursor | 指定当鼠标在 Menubutton 上飘过的时候的鼠标样式 |

| direction | 1. 默认情况下菜单是显示在按钮的下方,你可以通过修改此选项来改变这一特征\n2. 你可以将该选项设置为 "left"(按钮的左边),"right"(按钮的右边),"above"(按钮的上方) |

| disabledforeground | 指定当 Menubutton 不可用的时候前景色的颜色 |

| font | 指定 Menubutton 中文本的字体 |

| foreground | 设置 Menubutton 的文本和位图的颜色 |

| fg | 跟 foreground 一样 |

| height | 1. 设置 Menubutton 的高度\n2. 如果 Menubutton 显示的是文本,那么单位是文本单元\n3. 如果 Menubutton 显示的是图像,那么单位是像素(或屏幕单元)\n4. 如果设置为 0 或者干脆不设置,那么会自动根据 Menubutton 的内容计算出高度 |

| highlightbackground | 指定当 Menubutton 没有获得焦点的时候高亮边框的颜色 |

| highlightcolor | 指定当 Menubutton 获得焦点的时候高亮边框的颜色 |

| highlightthickness | 指定高亮边框的宽度 |

| image | 1. 指定 Menubutton 显示的图片\n2. 该值应该是 PhotoImage,BitmapImage,或者能兼容的对象 |

| justify | 1. 定义如何对齐多行文本\n2. 使用 "left","right" 或 "center"\n3. 注意,文本的位置取决于 anchor 选项4. 默认值是 "center" |

| menu | 1. 指定与 Menubutton 相关联的 Menu 组件\n2. Menu 组件的第一个参数必须是 Menubutton 的实例(参考上边例子) |

| padx | 指定 Menubutton 水平方向上的额外间距(内容和边框间) |

| pady | 指定 Menubutton 垂直方向上的额外间距(内容和边框间) |

| relief | 1. 指定边框样式\n2. 默认值是 "flat"\n3. 可以设置为 "sunken","raised","groove","ridge" |

| state | 1. 指定 Menubutton 的状态\n2. 默认值是 "normal"\n3. 另外你还可以设置 "active" 或 "disabled" |

| takefocus | 指定使用 Tab 键可以将焦点移到该 Button 组件上(这样按下空格键也相当于触发按钮事件) |

| text | 1. 指定 Menubutton 显示的文本\n2. 文本可以包含换行符 |

| textvariable | 1. Menubutton 显示 Tkinter 变量(通常是一个 StringVar 变量)的内容\n2. 如果变量被修改,Menubutton 的文本会自动更新 |

| underline | 1. 跟 text 选项一起使用,用于指定哪一个字符画下划线(例如用于表示键盘快捷键)\n2. 默认值是 -13. 例如设置为 1,则说明在 Menubutton 的第 2 个字符处画下划线 |

| width | 1. 设置 Menubutton 的宽度\n2. 如果 Menubutton 显示的是文本,那么单位是文本单元\n3. 如果 Menubutton 显示的是图像,那么单位是像素(或屏幕单元)\n4. 如果设置为 0 或者干脆不设置,那么会自动根据 Menubutton 的内容计算出宽度 |

| wraplength | 1. 决定 Menubutton 的文本应该被分成多少行\n2. 该选项指定每行的长度,单位是屏幕单元\n3. 默认值是 0 |

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值