- 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
广告