PySimpleGUI 单选元素
单选按钮是一种切换按钮的类型。它的状态在每次点击时都会由真变假,反之亦然。一个标题出现在一个圆形的可点击区域的右边,其中有一个点选择指示器。
当多个单选按钮被添加为一个组的成员时,它们是相互排斥的,在这个意义上,只有一个按钮的状态是真,其他的是假。
除了从元素类继承的普通属性外,单选对象在单选按钮的上下文中还有以下重要的属性:
- text – 显示在按钮旁边的文本
-
group_id – 将多个Radio按钮组合在一起。
-
default – 设置为 “True”,即你希望最初选择的组中的一个元素。
如果 “enable_events “属性被设置为 “True”,所有具有相同组ID的按钮都会被传送选择改变事件。
如果被选中,”get() “方法返回True,否则返回false。update() “方法被重写来修改Radio元素的属性。这些属性是 –
- value – 如果是True,则改为selected,并将组中的其他元素设置为unselected。
-
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()
它将产生以下 输出 窗口 –