PySimpleGUI - 單選按鈕元素



單選鈕是一種切換按鈕型別。它在每次單擊中將其狀態從 True 更改為 False,反之亦然。一個標題顯示在一個圓形可單擊區域的右側,圓形可單擊區域包含一個點選取指示符。

當多個單選按鈕被新增為一個組的成員時,它們是互斥的,即只有一顆按鈕可以有 True 狀態,而其餘的按鈕變為 False。

除了從元素類繼承的公用屬性之外,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()

它會生成以下輸出視窗 −

Radio Element
pysimplegui_element_class.htm
廣告
© . All rights reserved.