跳到主要内容

单选 Radio

单选按钮允许用户从两个或多个选项中选择一个选项。

示例

在线示例

基本的 RadioGroup

import flet as ft

def main(page):
def button_clicked(e):
t.value = f"您选择的颜色是:{cg.value}"
page.update()

t = ft.Text()
b = ft.ElevatedButton(text='提交', on_click=button_clicked)
cg = ft.RadioGroup(content=ft.Column([
ft.Radio(value="red", label="红色"),
ft.Radio(value="green", label="绿色"),
ft.Radio(value="blue", label="蓝色")]))

page.add(ft.Text("请选择您喜欢的颜色:"), cg, b, t)

ft.app(target=main)

带有 on_change 事件的 RadioGroup

import flet as ft

def main(page):
def radiogroup_changed(e):
t.value = f"您选择的颜色是:{e.control.value}"
page.update()

t = ft.Text()
cg = ft.RadioGroup(content=ft.Column([
ft.Radio(value="red", label="红色"),
ft.Radio(value="green", label="绿色"),
ft.Radio(value="blue", label="蓝色")]), on_change=radiogroup_changed)

page.add(ft.Text("请选择您喜欢的颜色:"), cg, t)

ft.app(target=main)

RadioGroup 属性

value

RadioGroup 的当前值。

RadioGroup 事件

on_change

当 RadioGroup 的状态发生变化时触发。

Radio 属性

active_color

选中时用于填充此单选按钮的颜色

adaptive

如果值为 True,则根据目标平台是 iOS/macOS 创建自适应单选按钮。

在 iOS 和 macOS 上,会创建一个 CupertinoRadio,其功能和呈现与 Radio 相匹配,并且其图形与 iOS 上的预期相符。在其他平台上,会创建一个 Material 单选按钮。

默认值为 False

autofocus

如果该控件将被选为初始焦点,则为 True。如果页面上有多个设置了 autofocus 的控件,则页面上添加的第一个控件将获得焦点。

fill_color

填充单选按钮的颜色,支持所有 MaterialState 状态:

  • HOVERED - 鼠标悬停状态
  • FOCUSED - 获得焦点状态
  • PRESSED - 按下状态
  • DRAGGED - 拖动状态
  • SELECTED - 选中状态
  • SCROLLED_UNDER - 滚动到下方状态
  • DISABLED - 禁用状态
  • ERROR - 错误状态
  • DEFAULT - 默认状态,表示“所有其他状态”。

要为所有 Material 状态配置单选按钮的填充颜色,请将 fill_color 的值设置为字面值,例如:

rd.fill_color=ft.colors.GREEN

要为特定的 Material 状态配置填充颜色,请将其值设置为字典,其中键是状态名称。例如,要为 HOVEREDFOCUSED 状态配置不同的填充颜色,并为所有其他状态配置另一种颜色:

rd.fill_color={
ft.MaterialState.HOVERED: ft.colors.GREEN,
ft.MaterialState.FOCUSED: ft.colors.RED,
ft.MaterialState.DEFAULT: ft.colors.BLACK,
}

label

单选按钮右侧显示的可点击标签。

label_position

属性值是 LabelPosition 枚举,LabelPosition.RIGHT 是默认值。

value

当选择该单选按钮时,要设置给包含的 RadioGroup 的值。

Radio 事件

on_blur

当控件失去焦点时触发。

on_focus

当控件获得焦点时触发。