- PySimpleGUI 教程
- PySimpleGUI - 首頁
- PySimpleGUI - 簡介
- PySimpleGUI - 環境配置
- PySimpleGUI - Hello World
- PySimpleGUI - 彈出視窗
- PySimpleGUI - 視窗類
- PySimpleGUI - 元素類
- PySimpleGUI - 事件
- PySimpleGUI - 選單欄
- PySimpleGUI - Matplotlib 整合
- PySimpleGUI - 使用 PIL
- PySimpleGUI - 偵錯程式
- PySimpleGUI - 設定
- PySimpleGUI 有用資源
- PySimpleGUI - 快速指南
- PySimpleGUI - 有用資源
- PySimpleGUI - 討論
PySimpleGUI - Spin 元素
PysimpleGUI 庫中 Spin 類的物件也是一個選擇小部件。它的外觀顯示一個不可編輯的文字框,右側帶有向上/向下按鈕。它能夠顯示數字或字串列表中的任何一個專案。
按下向上或向下按鈕時,要顯示的專案的索引會遞增或遞減,並且列表中的下一個或上一個專案會顯示在控制元件的文字框中。顯示的值可以根據程式邏輯需要使用。
Spin() 建構函式的引數如下:
PySimpleGUI.Spin(values, initial_value, disabled, readonly, size)
其中:
values - 有效值的列表或元組 - 數字或字串
initial_value - 從提供的列表中初始顯示的任何一個專案
disabled - 設定停用狀態
readonly - 點擊向上/向下按鈕時開啟 Spin 元素事件
size - (w, h) w=字元寬度,h=行高
Spin 類的 get() 方法返回其文字框中當前顯示的專案。另一方面,update() 方法用於動態更改 Spin 元素的以下屬性:
value - 從選擇列表中設定當前值
values - 設定新的列表物件作為可用選項
當點擊向上/向下按鈕時,Spin 元素會生成由 key 引數標識的選擇更改事件。
在下面的示例中,我們使用三個 Spin 元素構建了一個簡單的日期選擇器 - 用於日期、月份名稱和 2000 年到 2025 年之間的年份。日期和年份元素的範圍是數字的,而對於月份 Spin 元素,範圍是字串的。
import PySimpleGUI as psg
import calendar
from datetime import datetime
dates = [i for i in range(1, 32)]
s1 = psg.Spin(dates, initial_value=1, readonly=True, size=3, enable_events=True, key='-DAY-')
months = calendar.month_abbr[1:]
s2 = psg.Spin(months, initial_value='Jan', readonly=True, size=10, enable_events=True, key='-MON-')
yrs = [i for i in range(2000, 2025)]
s3 = psg.Spin(yrs, initial_value=2000, readonly=True, size=5, enable_events=True, key='-YR-')
layout = [
[psg.Text('Date'), s1, psg.Text("Month"), s2, psg.Text("Year"), s3],
[psg.OK(), psg.Text("", key='-OUT-')]
]
window = psg.Window('Spin Element Example', layout, font='_ 18', size=(700, 100))
while True:
event, values = window.read()
if event == 'OK':
datestr = str(values['-DAY-']) + " " \ + values['-MON-'] + "," \ + str(values['-YR-'])
try:
d = datetime.strptime(datestr, '%d %b,%Y')
window['-OUT-'].update("Date: {}".format(datestr))
except:
window['-OUT-'].update("")
psg.Popup("Invalid date")
if event == psg.WIN_CLOSED:
break
window.close()
將 Spin 元素設定為所需的日期值,然後按確定。如果日期字串表示有效日期,則它將顯示在底行的 Text 元素中。
如果日期字串不正確(例如,29-Feb-2022),則會出現一個彈出視窗,指示該值無效。
pysimplegui_element_class.htm
廣告