跳到主要内容

分段按钮

Material 按钮,允许用户从有限的选项集中选择,通常用于只有 2-5 个选项的情况。

示例

实时示例

import flet as ft


def main(page: ft.Page):
def handle_change(e):
print("on_change data : " + str(e.data))

page.add(
ft.SegmentedButton(
on_change=handle_change,
selected_icon=ft.Icon(ft.icons.ONETWOTHREE),
selected={"1", "4"},
allow_multiple_selection=True,
segments=[
ft.Segment(
value="1",
label=ft.Text("1"),
icon=ft.Icon(ft.icons.LOOKS_ONE),
),
ft.Segment(
value="2",
label=ft.Text("2"),
icon=ft.Icon(ft.icons.LOOKS_TWO),
),
ft.Segment(
value="3",
label=ft.Text("3"),
icon=ft.Icon(ft.icons.LOOKS_3),
),
ft.Segment(
value="4",
label=ft.Text("4"),
icon=ft.Icon(ft.icons.LOOKS_4),
),
],
)
)


ft.app(target=main)

SegmentedButton 属性

allow_empty_selection

一个布尔值,指示是否允许没有选定的分段。

如果为 True,那么没有选定的分段是允许的,也可以将 selected 设置为空。

如果为 False(默认),则至少有一个分段必须被选定。如果用户点击唯一的选定分段,它将不会被 deselected,并且 on_change 不会被调用。

allow_multiple_selection

一个布尔值,指示是否允许多个分段同时被选定。

如果为 True,那么多个分段可以被选定。当选择一个分段时,其他 selected 分段将保持选定状态。选择一个已经选定的分段将取消其选定状态。

如果为 False(默认),那么只能选择一个分段。当选择一个分段时,之前选定的分段将被取消选定。

segments

一个必需的参数,描述按钮中的分段。它是一个 Segment 对象的列表。

selected

一个集合,包含选定的分段的值。它会在用户(取消)选定分段时更新。

selected_icon

一个 Icon 控件,用于指示分段被选定。

如果 show_selected_iconTrue,那么对于选定的分段,这个图标将在 Segment.label 之前显示,替换 Segment.icon 如果它被指定。

默认为一个带有 CHECK 图标的 Icon

show_selected_icon

一个布尔值,指示是否在选定的分段中显示 selected_icon

如果为 True,那么 selected_icon 将在选定的分段中显示。

如果为 False,那么 selected_icon 不会被使用,也不会在选定的分段中显示。

style

自定义按钮的外观。该值是一个 ButtonStyle 类的实例。

事件

on_change

当选择改变时触发。

Segment 属性

disabled

确定分段是否可供选择。

icon

分段中显示的图标(通常是一个 Icon)。

label

分段中显示的标签(通常是一个 Text)。

tooltip

分段的工具提示。

value

用于标识 Segment 的值。