PySimpleGUI/ProgrammingClassExamples/Win10 versions/4b PSG (Spinner and combo) .py

40 lines
1.4 KiB
Python
Raw Normal View History

#PySimple examples (v 3.8)
#Tony Crewe
#Sep 2018
import PySimpleGUI as sg
sg.SetOptions(font= ('Calibri', 12, 'bold'))
layout = [
[sg.Text('Spinner and Combo box demo', font = ('Calibri', 14, 'bold'))],
[sg.Spin([sz for sz in range (-9,10)], size = (2,1),initial_value = 0),
sg.Spin([sz for sz in range (-9,10)], size = (2,1), initial_value = 0),
sg.Text('Pick operation ->', size = (15,1)),
sg.InputCombo(['Add','Subtract','Multiply','Divide'], size = (8,6))],
[sg.Text('Result: ')],[sg.InputText(size = (5,1), key = '_result_'),
sg.ReadButton('Calculate', button_color = ('White', 'Red'))]]
window = sg.Window('Enter & Display Data', grab_anywhere= False).Layout(layout)
while True:
button, value = window.Read()
if button is not None:
#convert returned values to integers
val = [int(value[0]), int(value[1])]
if value[2] == 'Add':
result = val[0] + val[1]
elif value[2] == 'Multiply':
result = val[0] * val[1]
elif value[2] == 'Subtract':
result = val[0] - val[1]
elif value[2] == 'Divide':
if val[1] ==0:
sg.Popup('Second value can\'t be zero')
result = 'NA'
else:
result = round( val[0] / val[1], 3)
window.FindElement('_result_').Update(result)
else:
break