- PySimpleGUI 教程
- PySimpleGUI - 首頁
- PySimpleGUI - 簡介
- PySimpleGUI - 環境設定
- PySimpleGUI - Hello World
- PySimpleGUI - 彈出視窗
- PySimpleGUI - 視窗類
- PySimpleGUI - 元素類
- PySimpleGUI - 事件
- PySimpleGUI - 選單欄
- PySimpleGUI - Matplotlib 整合
- PySimpleGUI - 使用 PIL
- PySimpleGUI - 偵錯程式
- PySimpleGUI - 設定
- PySimpleGUI 有用資源
- PySimpleGUI - 快速指南
- PySimpleGUI - 有用資源
- PySimpleGUI - 討論
PySimpleGUI - 複選框元素
複選框也是一個具有兩種狀態的切換按鈕:選中和未選中。它顯示一個矩形框,單擊時會顯示一個勾號(或者如果已經有勾號則將其移除),並在其旁邊顯示一個標題。
通常,複選框控制元件用於允許使用者從可用選項中選擇一個或多個專案。與單選按鈕不同,GUI 視窗上的複選框不屬於任何組。因此,使用者可以進行多個選擇。
複選框類的物件用以下特定引數宣告
PySimpleGUI.Checkbox(text, default, checkbox_color)
這些是複選框類特有的屬性:
text − 這是一個字串,表示複選框旁邊顯示的文字
default − 如果希望此複選框最初處於選中狀態,則設定為 True
checkbox_color − 可以指定帶有勾號的框的背景顏色。
除此之外,還可以向建構函式提供其他從 Element 類繼承的屬性的常用關鍵字引數。
複選框類中繼承但被重寫的兩種重要方法是:
get() − 它返回此複選框的當前狀態
update() − 複選框發出選擇更改事件。響應視窗上的事件,更新複選框元素的一個或多個屬性。這些屬性是
value − 如果為 True 則選中複選框,如果為 False 則清除選中狀態。
text − 複選框旁邊顯示的文字
在下面的示例中,一組三個單選按鈕代表學院中可用的院系專業。根據選擇的院系,將為使用者提供該院系的三個科目,供使用者從可用選項中選擇一個或多個。
import PySimpleGUI as psg
psg.set_options(font=("Arial Bold",14))
l1=psg.Text("Enter Name")
l2=psg.Text("Faculty")
l3=psg.Text("Subjects")
l4=psg.Text("Category")
l5=psg.Multiline(" ", expand_x=True, key='-OUT-', expand_y=True,justification='left')
t1=psg.Input("", key='-NM-')
rb=[]
rb.append(psg.Radio("Arts", "faculty", key='arts', enable_events=True,default=True))
rb.append(psg.Radio("Commerce", "faculty", key='comm', enable_events=True))
rb.append(psg.Radio("Science", "faculty", key='sci',enable_events=True))
cb=[]
cb.append(psg.Checkbox("History", key='s1'))
cb.append(psg.Checkbox("Sociology", key='s2'))
cb.append(psg.Checkbox("Economics", key='s3'))
b1=psg.Button("OK")
b2=psg.Button("Exit")
layout=[[l1, t1],[rb],[cb],[b1, l5, b2]]
window = psg.Window('Checkbox Example', layout, size=(715,250))
while True:
event, values = window.read()
print (event, values)
if event in (psg.WIN_CLOSED, 'Exit'): break
if values['comm']==True:
window['s1'].update(text="Accounting")
window['s2'].update(text="Business Studies")
window['s3'].update(text="Statistics")
if values['sci']==True:
window['s1'].update(text="Physics")
window['s2'].update(text="Mathematics")
window['s3'].update(text="Biology")
if values['arts']==True:
window['s1'].update(text="History")
window['s2'].update(text="Sociology")
window['s3'].update(text="Economics")
if event=='OK':
subs=[x.Text for x in cb if x.get()==True]
fac=[x.Text for x in rb if x.get()==True]
out="""
Name={}
Faculty: {}
Subjects: {}
""".format(values['-NM-'], fac[0], " ".join(subs))
window['-OUT-'].update(out)
window.close()
執行以上程式碼。選擇一個院系名稱,並在相應的複選框中標記勾號以註冊選擇。請注意,科目會隨著院系選項的更改而更改。
按下“確定”按鈕,以便在多行框中列印所選內容,如下所示:
pysimplegui_element_class.htm
廣告