PySimpleGUI Spin元素

PySimpleGUI Spin元素

PysimpleGUI库中的Spin类对象也是一个选择小部件。它的视觉外观显示了一个不可编辑的文本框,右边有向上/向下的按钮。它能够从一个数字或字符串的列表中显示任何一个项目。

当按下向上或向下的按钮时,要显示的项目的索引会增加或减少,列表中的下一个或上一个项目会显示在控件的文本框中。显示的值可以在程序逻辑中按要求使用。

Spin()构造函数的参数是 –

PySimpleGUI.Spin(values, initial_value, disabled, readonly, size)

其中。

  • values – 有效值的列表或元组 – 数字或字符串

  • initial_value – 所提供的列表中的任何一个项目将被最初显示。

  • disabled – 设置禁用状态

  • readonly – 当向上/向下按钮被点击时,开启旋转元素事件

  • size – (w, h) w=characters-wide, h=rows-high

Spin类的 get() 方法返回其文本框中显示的当前项目。另一方面,update()方法用于动态更改Spin元素的以下属性 −

  • value – 从选择列表中设置当前值

  • values – 设置新的列表对象作为可用的选择

当上/下按钮被点击时,Spin元素会产生由关键参数确定的选择改变事件。

在下面的例子中,我们在三个Spin元素的帮助下构造了一个简单的日期选择器–用于日期、月份名称和2000至2025年之间的年份。日期和年份元素的范围是数字,而月份旋转元素的范围则是字符串。

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元素设置为所需的日期值,然后按OK。如果日期字符串代表一个有效的日期,它就会显示在底部一行的文本元素中。

PySimpleGUI - Spin元素

如果日期字符串不正确(例如,29-Feb-2022),则会出现一个弹出窗口,指出该值无效。

PySimpleGUI - Spin元素

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程