跳到主要内容

分段按键 SegmentedButton

一个材料风格的按钮,允许用户从有限的选项中进行选择,通常在只有2-5个选项的情况下使用。

Examples

Live example

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 属性

empty_selection_allowed

一个布尔值,指示是否允许没有选择任何片段。

如果为 True,则没有选择任何片段是可以接受的,而且 selected 可以为空。

如果为 False(默认值),必须至少选择一个片段。如果用户点击已选中的片段,它将不会被取消选择,并且不会调用 on_change

multi_selection_enabled

一个布尔值,指示是否可以同时选择多个片段。

如果为 True,可以选择多个片段。选择一个片段时,其他 selected 片段将保持选择状态。选择已选择的片段将取消选择。

如果为 False(默认值),一次只能选择一个片段。选择片段时,任何先前选择的片段都将取消选择。

segments

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

selected

一个 Segment.value 的集合,指示哪些片段被选择。当用户选择或取消选择一个片段时,它将更新。

selected_icon

用于指示选择了一个片段的 Icon 控件。

如果 show_selected_iconTrue,那么将在 selected 片段的 Segment.label 之前显示此图标,如果指定了 Segment.icon,则替换它。

默认为带有 CHECK 图标的 Icon

show_selected_icon

一个布尔值,指示是否在 selected 片段上显示 selected_icon

如果为 Trueselected_icon 将在 selected 片段的开头显示。

如果为 False,则不使用 selected_icon,在 selected 片段上不显示。

style

有关此属性的更多信息,请参见 ElevatedButton.style

事件

on_change

当选择发生改变时触发。

Segment 属性

disabled

确定片段是否可供选择。

icon

在片段中显示的图标(通常是 Icon)。

label

在片段中显示的标签(通常是 Text)。

tooltip

片段的工具提示。

value

用于标识 Segment