跳到主要内容

ControlState

有关每个状态的更多信息,请参阅Material Design 规范

ControlState枚举有以下值:

DEFAULT(默认状态)

表示当没有其他状态处于活动状态时控件的基线状态。它作为备用状态,在没有交互发生时应用。

它在状态层次结构中具有最低优先级,可以放在状态字典中的任何位置而不影响其行为。

DISABLED(禁用状态)

表示控件被禁用/不可交互且在视觉上不突出。当控件不可用于用户交互时使用此状态。

DRAGGED(拖动状态)

表示用户正在积极拖动控件的状态。这通常用于可拖动组件以在移动期间提供视觉反馈。

ERROR(错误状态)

表示控件遇到错误或验证问题。此状态通常用于突出显示具有无效条目的输入字段。

FOCUSED(聚焦状态)

表示控件已接收键盘或触摸焦点。通常用于在输入字段或按钮被选中进行交互时突出显示它们。

HOVERED(悬停状态)

表示用户使用指针设备悬停在控件上的状态。此状态用于提供视觉反馈,例如颜色变化或阴影效果。

PRESSED(按下状态)

表示控件正在被积极按下或点击。

SELECTED(选中状态)

表示控件处于选中或激活状态,例如切换开关、选中的复选框或选中的单选按钮。

SCROLLED_UNDER(滚动到下方状态)

当控件部分或完全滚动到另一个元素下方时使用。此状态对于粘性标题或在滚动时改变外观的元素很有用。

使用示例

可以通过两种方式配置fill_color

1. 所有状态的单一值

如果要在所有 Material 状态下使用相同的颜色,只需将fill_color分配给单一颜色:

ft.Radio(fill_color=ft.Colors.GREEN)

2. 每个状态的特定值

为了获得更多控制,可以提供一个字典,其中键是状态名称,值是相应的颜色。

顺序很重要

  • 字典中状态出现的顺序将决定它们的优先级,允许灵活性和自定义。
  • DEFAULT的位置不影响行为——它始终具有最低优先级,可以放在字典中的任何位置。

示例

要为ControlState.HOVEREDControlState.FOCUSED配置Radio按钮的不同填充颜色,并为所有其他状态设置回退颜色:

ft.Radio(
fill_color={
ft.ControlState.HOVERED: ft.Colors.GREEN,
ft.ControlState.FOCUSED: ft.Colors.RED,
ft.ControlState.DEFAULT: ft.Colors.BLACK,
}
)

此设置确保HOVEREDFOCUSED状态优先,而所有未指定的状态默认为BLACK