Python 3 - Tkinter 菜单按钮

  • 简述

    menubutton 是始终显示在屏幕上的下拉菜单的一部分。每个菜单按钮都与一个菜单小部件相关联,该小部件可以在用户单击该菜单按钮时显示该菜单按钮的选项。
  • 句法

    这是创建此小部件的简单语法 -
    
    w = Menubutton ( master, option, ... )
    
  • 参数

    • master− 这代表父窗口。
    • options− 这是此小部件最常用选项的列表。这些选项可以用作以逗号分隔的键值对。
    序号 选项和描述
    1
    activebackground
    鼠标悬停在菜单按钮上时的背景颜色。
    2
    activeforeground
    鼠标悬停在菜单按钮上时的前景色。
    3
    anchor
    如果小部件的空间大于文本所需的空间,则此选项控制文本的放置位置。默认值是 anchor = CENTER,它使文本居中。
    4
    bg
    标签和指示器后面显示的正常背景色。
    5
    bitmap
    要在菜单按钮上显示位图,请将此选项设置为位图名称。
    6
    bd
    指标周围边框的大小。默认值为 2 像素。
    7
    cursor
    当鼠标悬停在该菜单按钮上时出现的光标。
    8
    direction
    设置direction = LEFT,在按钮左侧显示菜单;使用 direction = RIGHT 在按钮右侧显示菜单;或者使用 direction = 'above' 将菜单放在按钮上方。
    9
    disabledforeground
    禁用时此菜单按钮上显示的前景色。
    10
    fg
    鼠标不在菜单按钮上时的前景色。
    11
    height
    菜单按钮的文本行高度(不是像素!)。默认是使菜单按钮的大小适合它的内容。
    12
    highlightcolor
    当小部件具有焦点时,焦点突出显示中显示的颜色。
    13
    image
    要在此菜单按钮上显示图像,
    14
    justify
    此选项控制当文本未填充菜单按钮时文本所在的位置:使用 justify = LEFT 左对齐文本(这是默认设置);使用 justify = CENTER 将其居中,或 justify = RIGHT 右对齐。
    15
    menu
    要将菜单按钮与一组选项相关联,请将此选项设置为包含这些选项的 Menu 对象。该菜单对象必须通过将关联的菜单按钮作为其第一个参数传递给构造函数来创建。
    16
    padx
    menubutton 文本左右留出多少空间。默认值为 1。
    17
    pady
    在菜单按钮的文本上方和下方留出多少空间。默认值为 1。
    18
    relief
    选择三维边框阴影效果。默认值是 RAISED。
    19
    state
    通常,菜单按钮响应鼠标。设置 state = DISABLED 使菜单按钮变灰并使其无响应。
    20
    text
    要在菜单按钮上显示文本,请将此选项设置为包含所需文本的字符串。字符串中的换行符 ("\n") 会导致换行。
    21
    textvariable
    您可以将 StringVar 类的控制变量与此菜单按钮相关联。设置该控制变量将更改显示的文本。
    22
    underline
    通常,菜单按钮上的文本下方不会出现下划线。要给其中一个字符加下划线,请将此选项设置为该字符的索引。
    23
    width
    小部件的字符宽度。默认值为 20。
    24
    wraplength
    通常,行不换行。您可以将此选项设置为多个字符,并且所有行将被分成不超过该数字的片段。
  • 例子

    自己尝试以下示例 -
    
    # !/usr/bin/python3
    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()
    
  • 结果

    执行上述代码时,会产生以下结果 -
    TK 菜单按钮