-
Notifications
You must be signed in to change notification settings - Fork 66
/
Copy path4b PSG (Spinner and combo) .py
39 lines (34 loc) · 1.35 KB
/
4b PSG (Spinner and combo) .py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#PySimple examples (v 3.8)
#Tony Crewe
#Sep 2018
import FreeSimpleGUI 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