选按钮是一种切换按钮。 每次单击时,它的状态从 True 变为 False,反之亦然。 标题出现在圆形可点击区域的右侧,其中有点选择指示器。

当多个单选按钮被添加为一组成员时,它们是互斥的,从某种意义上说,只有一个按钮可以具有 True 状态,而其他按钮变为 False。

除了从 Element 类继承的公共属性外,Radio 对象还有以下在单选按钮上下文中很重要的属性 −

  • text − 在按钮旁边显示的文本
  • group_id − 将多个单选按钮组合在一起。
  • default − 将您想要最初选择的组中的一个元素设置为 True

如果具有相同 group_id 的所有按钮的"enable_events"属性都设置为 True,则传输选择更改事件。

如果被选中,"get()"方法返回 True,否则返回 false。 "update()"方法被覆盖以修改 Radio 元素的属性。 这些属性是 −

  • value − 如果为 True 则更改为选中并将组中的其他设置为未选中
  • text − 显示在单选按钮旁边的文本
  • disabled − 禁用或启用元素的状态

在下面的示例中,使用了三组单选按钮。 该代码计算贷款额度的利息。 利率取决于用户选择的性别(女性减少 0.25%)、期限和贷款类型(个人或企业 - 商业贷款增加 3%)。

import PySimpleGUI as psg
psg.set_options(font=("Arial Bold", 14))
l1 = psg.Text("Enter amount")
l2 = psg.Text("Gender")
l3 = psg.Text("Period")
l4 = psg.Text("Category")
l5 = psg.Text(" ", expand_x=True, key='-OUT-', justification='center')
t1 = psg.Input("", key='-AMT-')
r11 = psg.Radio("Male", "gen", key='male', default=True)
r12 = psg.Radio("Female", "gen", key='female')
r21 = psg.Radio("1 Yr", "per", key='one')
r22 = psg.Radio("5 Yr", "per", key='five', default=True)
r23 = psg.Radio("10 Yr", "per", key='ten')
r31 = psg.Radio("Personal", "ctg", key='per', default=True)
r32 = psg.Radio("Business", "ctg", key='bus')
b1 = psg.Button("OK")
b2 = psg.Button("Exit")
layout = [[l1, t1], [l2, r11, r12],
   [l3, r21, r22, r23], [l4, r31, r32],
   [b1, l5, b2]
]
window = psg.Window('Radio button Example', layout, size=(715, 200))
while True:
   rate = 12
   period = 5
   event, values = window.read()
   print(event, values)
   if event in (psg.WIN_CLOSED, 'Exit'):
      break
   if event == 'OK':
      if values['female'] == True: rate = rate - 0.25
      if values['one'] == True:
         rate = rate + 1
         period = 1
      if values['ten'] == True:
         rate = rate - 1
         period = 10
      if values['bus'] == True: rate = rate + 3
         amt = int(values['-AMT-'])
         print(amt, rate, period)
         interest = amt * period * rate / 100         window['-OUT-'].update("Interest={}".format(interest))
window.close()

它将产生以下输出窗口 −

PySimpleGUI - Radio 单选元素_Personal


❮ PySimpleGUI 元素类