import kivy import time #kivy.require('1.11.0') # replace with your current kivy version ! from kivy.app import App from kivy.uix.boxlayout import BoxLayout from kivy.uix.label import Label from kivy.clock import Clock from kivy.lang import Builder from kivy.properties import StringProperty from kivy.core.window import Window from tkinter import filedialog from tkinter import simpledialog from KivyOnTop import register_topmost, unregister_topmost from tkinter import * root = Tk() root.withdraw() folder_selected = filedialog.askopenfilename() print(folder_selected) Court_name = simpledialog.askstring(title="Court Name",prompt="What Court is this?") print(Court_name) #Builder.load_file('update_label.kv') filePath = (folder_selected) print(filePath) #f = open(r"C:\Users\William\Documents\University\BeepDetails.log", "r") Builder.load_string(""" : rgba: (1,.2,.2,.2) orientation: 'vertical' Label: id: Court_name text: root.Court_name font_size: 30 size_hint:(1,.2) bold: True canvas.before: Color: rgba: root.rgba Rectangle: size: self.size pos: self.pos Label: id: kv_sec text: root.seconds_string font_size: 70 size_hint:(1,.5) canvas.before: Color: rgba: root.rgba Rectangle: size: self.size pos: self.pos Label: id: average text: root.average font_size: 25 size_hint:(1,.2) canvas.before: Color: rgba: root.rgba Rectangle: size: self.size pos: self.pos Label: id: info text: root.info font_size: 30 size_hint:(1,.2) bold: True canvas.before: Color: rgba: root.rgba Rectangle: size: self.size pos: self.pos """) Window.size = (300, 300) list = [0] * 10 class MySec(BoxLayout): seconds_string = StringProperty('') info = StringProperty('') average = StringProperty('') Court_name = StringProperty('') #rgba = StringProperty('') class MyApp(App): def build(self): self.title = 'Beeper V2.1' register_topmost(Window, 'Beeper V2.1') Clock.schedule_interval(lambda dt: self.update_time(), 0.5) return MySec() def update_time(self): if list[9] != 0: del list[9] else: self.root.Court_name = Court_name with open(filePath,'r') as f: lastLine = None lines = f.readlines() if lines[-1] != lastLine: lastLine = lines[-1] BC = lastLine.find("Bounce Count") BC = lastLine[BC+14:BC+15] BC = int(BC) if BC == 0: CN = lastLine.find("Crosses Net") CN = lastLine[CN+13:CN+17] if CN == 'true': diff = lastLine.find("Time Diff") diff = lastLine[diff+11:diff+19] diff = float(diff) diff = round((diff * 1000),1) if diff <= 120: diff1 = (str(diff)+'ms') self.root.seconds_string = diff1 self.root.info = 'Cheating?' if list[0] != diff: list.insert(0,diff) avg = str(round((sum(list)/10),1)) self.root.average = ('10 beep average:' + avg) self.root.rgba = [218/255,165/255,32/255,1] else: pass elif ((diff > 120) and (diff <= 150)): diff1 = (str(diff)+'ms') self.root.seconds_string = diff1 self.root.info = 'Looking good' if list[0] != diff: list.insert(0,diff) avg = str(round((sum(list)/10),1)) self.root.average = ('10 beep average:' + avg) self.root.rgba = [19/255,229/255,19/255,1] else: pass elif ((diff > 150) and (diff <= 250)): diff1 = (str(diff)+'ms') self.root.seconds_string = diff1 self.root.info = 'Little slow' if list[0] != diff: list.insert(0,diff) avg = str(round((sum(list)/10),1)) self.root.average = ('10 beep average:' + avg) self.root.rgba = [235/255,116/255,19/255,1] else: pass elif ((diff > 250) and (diff <= 350)): diff1 = (str(diff)+'ms') self.root.seconds_string = diff1 self.root.info = 'Noticeable slow' if list[0] != diff: list.insert(0,diff) avg = str(round((sum(list)/10),1)) self.root.average = ('10 beep average:' + avg) self.root.rgba = [219/255,0/255,0/255,1] else: pass elif diff > 351: diff1 = (str(diff)+'ms') self.root.seconds_string = diff1 self.root.info = 'Help!!!' if list[0] != diff: list.insert(0,diff) avg = str(round((sum(list)/10),1)) self.root.average = ('10 beep average:' + avg) self.root.rgba = [90/255,4/255,4/255,1] else: pass else: pass else: pass if __name__ == '__main__': MyApp().run() # with open(filePath,'r') as f: # lastLine = None # lines = f.readlines() # if lines[-1] != lastLine: # lastLine = lines[-1] # return Label(text= lastLine) #def update(self): # lastLine = None