Tkinter 组件详解(十四):Menubutton

版权声明:转载请标明出处 https://blog.csdn.net/qq_41556318/article/details/85273892

Menubutton 组件是一个与 Menu 组件相关联的按钮,它可以放在窗口中的任意位置,并且在被按下时弹出下拉菜单。

何时使用 Menubutton 组件?

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

用法

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

import tkinter as tk

root = tk.Tk()

def callback():
    print("~被调用了~")

mb = tk.Menubutton(root, text="点我", relief="raised")
mb.pack()

filemenu = tk.Menu(mb, tearoff=False)
filemenu.add_checkbutton(label="打开", command=callback, selectcolor="yellow")
filemenu.add_command(label="保存", command=callback)
filemenu.add_separator()
filemenu.add_command(label="退出", command=root.quit)
mb.config(menu = filemenu)

root.mainloop()

参数

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

master -- 父组件

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

选项 含义
activebackground 设置当 Menubutton 处于 "active" 状态(通过 state 选项设置状态)的背景色
activeforeground 设置当 Menubutton 处于 "active" 状态(通过 state 选项设置状态)的前景色
anchor 1. 控制文本(或图像)在 Menubutton 中显示的位置
2. "n", "ne", "e", "se", "s", "sw", "w", "nw", 或 "center" 来定位(ewsn代表东西南北,上北下南左西右东)
3. 默认值是 "center"
background 设置背景颜色
bg 跟 background 一样
bitmap 指定显示到 Menubutton 上的位图
borderwidth 指定 Menubutton 的边框宽度
bd 跟 borderwidth 一样
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 设置 Menubutton 的文本和位图的颜色
fg 跟 foreground 一样
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

猜你喜欢

转载自blog.csdn.net/qq_41556318/article/details/85273892