PySimpleGUI/DemoPrograms/Demo_Spin_Element_Wraps_Aro...

44 lines
1.4 KiB
Python
Raw Permalink Normal View History

#!/usr/bin/env python
import PySimpleGUI as sg
"""
Demo Spin Element - Wraps around
This is a nice touch for the Spin Element that is yet another jason990420 creation
This Spin element will wrap around going in either direction. When getting to the end then
it will go back to the beginning.
Copyright 2022 PySimpleGUI
"""
lower, upper = 0, 10
data = [i for i in range(lower - 1, upper + 2)]
layout = [[sg.Text('This Spin element wraps around in both directions')],
[sg.Spin(data, initial_value=lower, readonly=True, size=3, enable_events=True, key='-SPIN-')]]
window = sg.Window('Wrapping Spin Element', layout, font='_ 18', keep_on_top=True)
while True:
event, values = window.read()
if event == sg.WIN_CLOSED:
break
# code to make the Spin do the wrap around. Do this prior to using the Spin's value in your code
if event == '-SPIN-':
value = values['-SPIN-']
if value == lower - 1:
window['-SPIN-'].update(value=upper)
values['-SPIN-'] = upper # Change the values dictionary too so it'll be correct if used
elif value == upper + 1:
window['-SPIN-'].update(value=lower)
values['-SPIN-'] = lower # Change the values dictionary too so it'll be correct if used
sg.Print('Spin Value:', values['-SPIN-'], relative_location=(-400, 0))
window.close()