一组里面只能选择一项
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 更新元素的可见状态
)