Skip to main content

MenuItemButton

A button for use in a MenuBar or on its own, that can be activated by click or keyboard navigation.

Examples​

Live example

Basic Example​

import flet as ft


def main(page: ft.Page):
page.padding = 0
page.spacing = 0

bg_container = ft.Ref[ft.Container]()

def handle_color_click(e):
color = e.control.content.value
print(f"{color}.on_click")
bg_container.current.content.value = f"{color} background color"
bg_container.current.bgcolor = color.lower()
page.update()

def handle_on_hover(e):
print(f"{e.control.content.value}.on_hover")

menubar = ft.MenuBar(
expand=True,
controls=[
ft.SubmenuButton(
content=ft.Text("BgColors"),
controls=[
ft.MenuItemButton(
content=ft.Text("Blue"),
leading=ft.Icon(ft.icons.COLORIZE),
style=ft.ButtonStyle(bgcolor={ft.ControlState.HOVERED: ft.colors.BLUE}),
on_click=handle_color_click,
on_hover=handle_on_hover,
),
ft.MenuItemButton(
content=ft.Text("Green"),
leading=ft.Icon(ft.icons.COLORIZE),
style=ft.ButtonStyle(bgcolor={ft.ControlState.HOVERED: ft.colors.GREEN}),
on_click=handle_color_click,
on_hover=handle_on_hover,
),
ft.MenuItemButton(
content=ft.Text("Red"),
leading=ft.Icon(ft.icons.COLORIZE),
style=ft.ButtonStyle(bgcolor={ft.ControlState.HOVERED: ft.colors.RED}),
on_click=handle_color_click,
on_hover=handle_on_hover,
)
]
),
]
)

page.add(
ft.Row([menubar]),
ft.Container(
ref=bg_container,
expand=True,
bgcolor=ft.colors.SURFACE,
content=ft.Text("Choose a bgcolor from the menu", style=ft.TextThemeStyle.HEADLINE_LARGE),
alignment=ft.alignment.center,
)
)


ft.app(main)

Properties​

autofocus​

Whether this button should automatically request focus.

Defaults to False.

clip_behavior​

Whether to clip the content of this control or not.

Value is of type ClipBehavior and defaults to ClipBehavior.NONE.

close_on_click​

Defines if the menu will be closed when the MenuItemButton is clicked.

Defaults to True.

content​

The child control to be displayed in the center of this button.

Typically this is the button's label, using a Text control.

focus_on_hover​

Determine if hovering can request focus.

Defaults to True.

leading​

An optional control to display before the content.

Typically an Icon control.

overflow_axis​

The direction in which the menu item expands.

If the menu item button is a descendent of MenuBar, then this property is ignored.

Value is of type Axis.

semantic_label​

A string that describes the button's action to assistive technologies.

style​

Customizes this button's appearance.

Value is of type ButtonStyle.

trailing​

An optional control to display after the content.

Typically an Icon control.

Events​

on_blur​

Fired when this button loses focus.

on_click​

Fired when the button is clicked.

on_focus​

Fired when the button receives focus.

on_hover​

Fired when the button is hovered.