Completely new set of materials for GUI class! Thanks Tony!!
This commit is contained in:
parent
ee0765c345
commit
8f7356f425
53 changed files with 1909 additions and 903 deletions
|
@ -0,0 +1,61 @@
|
|||
|
||||
#PySimple examples (v 3.8)
|
||||
#Tony Crewe
|
||||
#Sep 2018
|
||||
|
||||
#Based of Example program from MikeTheWatchGuy
|
||||
#https://gitlab.com/lotspaih/PySimpleGUI
|
||||
|
||||
import sys
|
||||
import PySimpleGUI as sg
|
||||
import csv
|
||||
sg.ChangeLookAndFeel('BrownBlue')
|
||||
|
||||
def calc_ladder():
|
||||
|
||||
filename = sg.PopupGetFile('Get required file', no_window = True,file_types=(("CSV Files","*.csv"),))
|
||||
#populate table with file contents
|
||||
#Assume we know csv has heading in row 1
|
||||
#Assume we know 7 columns of data - relevenat to AFL w/o Pts or % shown
|
||||
#data is a list of lists containing data about each team
|
||||
#data[0] is one teams data data[0[[0] = team, data[0][1] P, data[0] [2] W,
|
||||
#data[0][3] L, data [0][4] D, data [0][5] F, data [0][6] A
|
||||
#no error checking or validation used.
|
||||
|
||||
#initialise variable
|
||||
data = []
|
||||
header_list = []
|
||||
#read csv
|
||||
with open(filename, "r") as infile:
|
||||
reader = csv.reader(infile)
|
||||
for i in range (1):
|
||||
#get headings
|
||||
header = next(reader)
|
||||
#read everything else into a list of rows
|
||||
data = list(reader)
|
||||
#add headings
|
||||
header = header + ['%', 'Pts']
|
||||
for i in range (len(data)):
|
||||
#calculate % and format to 2 decimal places
|
||||
percent = str('{:.2f}'.format(int(data[i][5])/int(data[i][6])*100))
|
||||
data[i] = data[i] + [percent] #add to data
|
||||
pts = int(data[i][2])*4 + int(data[i][4])*2
|
||||
data[i] = data[i] + [pts] #add to data
|
||||
|
||||
|
||||
#use Table (explore settings) and add to column layout
|
||||
col_layout = [[sg.Table(values=data, headings=header, auto_size_columns=True,
|
||||
max_col_width = 12,justification='right', size=(None, len(data)))]]
|
||||
|
||||
layout = [[sg.Column(col_layout, size=(500,400), scrollable=True)],]
|
||||
|
||||
window = sg.Window('Table', location = (700, 325), grab_anywhere=False).Layout(layout)
|
||||
b, v = window.Read()
|
||||
|
||||
slayout = [[sg.Text('Load AFL file to display results with points and percentage'),sg.ReadButton('Load File', size = (20,1))]]
|
||||
swindow = sg.Window('Load File', location = (700,250)).Layout(slayout)
|
||||
|
||||
while True:
|
||||
button, value = swindow.Read()
|
||||
if button == 'Load File':
|
||||
calc_ladder()
|
Loading…
Add table
Add a link
Reference in a new issue