跳到主要内容

弹出菜单按钮

一个图标按钮,当点击时显示菜单。

示例

Live 示例

弹出菜单按钮

import flet as ft

def main(page: ft.Page):
def check_item_clicked(e):
e.control.checked = not e.control.checked
page.update()

pb = ft.PopupMenuButton(
items=[
ft.PopupMenuItem(text="Item 1"),
ft.PopupMenuItem(icon=ft.icons.POWER_INPUT, text="Check power"),
ft.PopupMenuItem(
content=ft.Row(
[
ft.Icon(ft.icons.HOURGLASS_TOP_OUTLINED),
ft.Text("Item with a custom content"),
]
),
on_click=lambda _: print("Button with a custom content clicked!"),
),
ft.PopupMenuItem(), # divider
ft.PopupMenuItem(
text="Checked item", checked=False, on_click=check_item_clicked
),
]
)
page.add(pb)

ft.app(target=main)

PopupMenuButton 属性

bgcolor

菜单的背景 颜色

clip_behavior

内容将根据此选项被剪裁(或不被剪裁)。属性值是 ClipBehavior

默认值为 NONE

content

将显示的控件,而不是“更多”图标。

elevation

菜单打开时的高度。默认为 8

enable_feedback

是否检测手势并提供音频和/或触觉反馈。例如,在 Android 上,将其设置为 True 将产生点击声音,并且长按将产生短暂的振动。

默认为 True

icon

如果提供,按钮上的图标。

icon_color

图标的 颜色

icon_size

图标的大小。

items

要在下拉菜单中显示的 PopupMenuItem 控件集合。

定义相对于按钮的弹出菜单位置。 值的类型为 PopupMenuPosition 且默认为 PopupMenuPosition.OVER

padding

填充值是 Padding 类的实例。

默认为 padding.all(8.0)

shadow_color

用于绘制菜单下方阴影的 颜色

shape

菜单的形状。值是 OutlinedBorder 类的实例。

默认形状是一个半径为 10.0 的圆形边框。

splash_radius

溅射半径。

surface_tint_color

用于指示高度的叠加颜色。

PopupMenuButton 事件

on_cancelled

当用户取消/dismiss 弹出菜单而不选择项目时调用。

自版本 0.22.0 起弃用(重命名),将在版本 1.0 中删除。使用 on_cancel 代替。

on_cancel

当用户取消/dismiss 弹出菜单而不选择项目时调用。

on_open

当弹出菜单显示时调用。

PopupMenuItem 属性

check

如果设置为 TrueFalse,菜单项将绘制一个勾选标记。

content

表示此菜单项的自定义内容的控件。如果指定,则忽略 icontext 属性。

height

此菜单项的最小高度。默认为 40

icon

此菜单项的图标。

mouse_cursor

当鼠标指针进入或悬停在此控件上时显示的光标。 值是 MouseCursor

padding

此菜单项的填充。注意,height 值可能会影响应用的填充。例如,如果提供的 height 大于填充和内容的高度之和,则填充的效果将不可见。

填充值是 Padding 类的实例。

默认为 padding.symmetric(horizontal=12)

text

此菜单项的文本标签。

PopupMenuItem 事件

on_click

当用户点击此菜单项时调用。