Menubutton
menubutton是下拉菜单的一部分,一直停留在屏幕上。 每个menubutton都与一个Menu小部件相关联,该小部件可以在用户点击它时显示该menubutton的选项。
语法 (Syntax)
以下是创建此小部件的简单语法 -
w = Menubutton ( master, option, ... )
参数 (Parameters)
master - 这表示父窗口。
options - 以下是此小部件最常用的选项列表。 这些选项可用作以逗号分隔的键值对。
Sr.No. | 选项和说明 |
---|---|
1 | activebackground 当鼠标位于menubutton上方时的背景颜色。 |
2 | activeforeground 鼠标悬停在menubutton上时的前景色。 |
3 | anchor 如果窗口小部件具有比文本需要更多的空间,则此选项控制文本的放置位置。 默认值为anchor = CENTER,它使文本居中。 |
4 | bg 标签和指示器后面显示的正常背景颜色。 |
5 | bitmap 要在menubutton上显示位图,请将此选项设置为位图名称。 |
6 | bd 指标周围边框的大小。 默认值为2像素。 |
7 | cursor 鼠标悬停在此menubutton上时出现的光标。 |
8 | direction 设置direction = LEFT以显示按钮左侧的菜单; 使用direction = RIGHT显示按钮右侧的菜单; 或使用direction ='above'将菜单放在按钮上方。 |
9 | disabledforeground 禁用时,此menubutton上显示的前景色。 |
10 | fg 当鼠标不在menubutton上时的前景色。 |
11 | height menubutton在文本行中的高度(不是像素!)。 默认设置是将menubutton的大小与其内容相匹配。 |
12 | highlightcolor 当窗口小部件具有焦点时,焦点中显示的颜色突出显示。 |
13 | image 要在此menubutton上显示图像, |
14 | justify 当文本未填充menubutton时,此选项控制文本所在的位置:use justify = LEFT左对齐文本(这是默认值); 使用justify = CENTER使其居中,或者使用justify = RIGHT来右对齐。 |
15 | menu 要将menubutton与一组选项相关联,请将此选项设置为包含这些选项的Menu对象。 必须通过将关联的menubutton作为其第一个参数传递给构造函数来创建该菜单对象。 |
16 | padx 在menubutton文本的左侧和右侧留出多少空间。 默认值为1。 |
17 | pady 在menubutton文本的上方和下方留出多少空间。 默认值为1。 |
18 | relief 选择三维边框着色效果。 默认为RAISED。 |
19 | state 通常,menubutton对小鼠有反应。 设置state = DISABLED以使menubutton变灰并使其无响应。 |
20 | text 要在menubutton上显示文本,请将此选项设置为包含所需文本的字符串。 字符串中的换行符(“\ n”)将导致换行符。 |
21 | textvariable 您可以将StringVar类的控件变量与此menubutton相关联。 设置该控制变量将更改显示的文本。 |
22 | underline 通常情况下,menubutton上的文字下没有下划线。 要为其中一个字符加下划线,请将此选项设置为该字符的索引。 |
23 | width 小部件的宽度(以字符为单位)。 默认值为20。 |
24 | wraplength 通常情况下,线条不会被包裹。 您可以将此选项设置为多个字符,并且所有行将被分成不超过该数字的片段。 |
例子 (Example)
请亲自尝试以下示例 -
from Tkinter import *
import tkMessageBox
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()
执行上述代码时,会产生以下结果 -