一组里面只能选择一项

sg.Radio() or sg.R()

Radio(text,
        # str 文本用于显示在单选框旁边

    group_id,
        # any
        # 组ID

    key=None,
        # 元素的唯一标识符

    default=False,
        # bool 如果为True,则默认选中

    disabled=False,
        # 设定禁用状态

    size=(None, None),
        # 设定元素宽度,行高

    auto_size_text=None,
        # bool 默认为True
        # 元素根据文本自动调整大小

    background_color=None,
        # 元素背景颜色

    text_color=None,
        # 元素文本颜色

    font=None,
        # 字体名称和大小设定
        # (str,int)

    pad=None,
        # 左右上下  (int,int)or((int,int),(int,int))
        # 元素间隔设定

    tooltip=None,
        # 悬浮文本设定

    enable_events=False,
        # 元素事件属性
        # 当设定为True时,选框被选中时会发生事件

    visible=True,
        # 设定元素的可见状态

        )

巧用For循环快速定义单选框(1)

  • 定义三行元素的常用方式1

layout=[[],[],[]]

  • 定义三行元素的常用方式2

layout=[[]]+[[]]+[[]]

  • 利用for循环从左向右遍历时 方式1和方式2 都可以

layout=[[],[],[()for循环]]
layout=[[]]+[[]]+[[()for循环]]

  • 利用for循环从上向下遍历时 要用方式2

layout=[[]]+[[]]+[[]for循环]

巧用key=(x,y),For循环快速定义单选框(2)

  • 从左向右从上向下同时遍历
layout=[[sg.R(x,group_id=y,key=(x,y)) for x in Comment]for y in range(9) ]

ResetGroup方法,相同组ID的单选框都更新为未选中状态。

window[key].ResetGroup()

window[key].reset_group()

Update方法,用于元素的更新。

window[key].update()

window[key].Update()

元素可以更新的属性只有如下几种:

Update(
    value=None,
    # bool 如果为True,此单选框被选中,同组的其他选框更新为未选中。

    text=None,
    # str 更新显示在按钮旁边的文本

    background_color=None,
    # 更新背景颜色

    text_color=None,
    # 更新文本颜色

    disabled=None,
    # bool 更新元素的禁用状态
    
    visible=None
    # bool 更新元素的可见状态

    )