Python Tkinter Menubutton 是下拉菜单的一部分,它始终停留在屏幕上。每个 menubutton 都与一个 Menu 小部件相关联,当用户单击该 menubutton 时,该 Widget 可以显示该 menubutton 的选项。
语法
以下是创建此小部件的简单语法 -
w = Menubutton ( master, option, ... )
参数
- master - 这表示父窗口。
- options − 这是此小部件最常用的选项列表。这些 options 可以用作用逗号分隔的键值对。
选项 | 描述 |
---|---|
activebackground |
鼠标悬停在 menubutton 上时的背景色。 |
activeforeground |
鼠标悬停在 menubutton 上时的前景色。 |
anchor |
此选项控制 Widget 的空间超过文本所需的空间时文本的位置。默认值为 anchor=CENTER,它使文本居中。 |
bg |
显示在标签和指示器后面的正常背景色。 |
bitmap |
要在 menubutton 上显示位图,请将此选项设置为位图名称。 |
bd |
指标周围边界的大小。默认值为 2 像素。 |
cursor |
当鼠标悬停在此 menubutton 上时出现的光标。 |
direction |
设置 direction=LEFT 以在按钮左侧显示菜单;使用 direction=RIGHT 在按钮右侧显示菜单;或使用 direction='above' 将菜单放在按钮上方。 |
disabledforeground |
禁用此 menubutton 时显示的前景色。 |
fg |
鼠标不在 menubutton 上时的前景色。 |
height |
菜单按钮的高度(以文本行为单位)(不是像素!默认设置是使 menubutton 的大小适合其内容。 |
highlightcolor |
当 Widget 具有焦点时,焦点中显示的颜色会突出显示。 |
image |
要在此 menubutton 上显示图像, |
justify |
此选项控制当文本未填充 menubutton 时文本的位置:使用 justify=LEFT 将文本左对齐(这是默认设置);使用 justify=CENTER 将其居中,或者 justify=RIGHT 进行右对齐。 |
menu |
若要将 menubutton 与一组选项关联,请将此选项设置为包含这些选项的 Menu 对象。该 menu 对象必须是通过将关联的 menubutton 作为其第一个参数传递给构造函数来创建的。 |
padx |
在 menubutton 文本的左侧和右侧留出多少空间。默认值为 1。 |
pady |
在 menubutton 文本的上方和下方留出多少空间。默认值为 1。 |
relief |
选择三维边界阴影效果。默认值为 RAISED。 |
state |
通常,menubuttons 会响应鼠标。设置 state=DISABLED 以使 menubutton 变灰并使其无响应。 |
text |
要在 menubutton 上显示文本,请将此选项设置为包含所需文本的字符串。字符串中的换行符 (“\n”) 将导致换行。 |
textvariable |
可以将类 StringVar 的控制变量与此 menubutton 相关联。设置该控制变量将更改显示的文本。 |
underline |
通常,menubutton 上的文本下方不会显示下划线。要为其中一个字符添加下划线,请将此选项设置为该字符的索引。 |
width |
小组件的宽度(以字符为单位)。默认值为 20。 |
wraplength |
通常,行不会换行。您可以将此选项设置为多个字符,所有行都将分成不超过该数字的片段。 |
例
请自行尝试以下示例 -
from tkinter import *
import tkinter
top = Tk()
mb= Menubutton ( top, text="condiments", relief=RAISED )
mb.grid()
mb.menu = Menu ( mb, tearoff = 0 )
mb["menu"] = mb.menu
mayoVar = IntVar()
ketchVar = IntVar()
mb.menu.add_checkbutton (label="mayo", variable=mayoVar)
mb.menu.add_checkbutton (label="ketchup", variable=ketchVar)
mb.pack()
top.mainloop()
执行上述代码时,它会生成以下输出 -
