62 lines
		
	
	
	
		
			2.2 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			62 lines
		
	
	
	
		
			2.2 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| #!/usr/bin/env python
 | |
| import PySimpleGUIWeb as sg
 | |
| import time
 | |
| 
 | |
| # ----------------  Create Form  ----------------
 | |
| layout = [
 | |
|     [sg.Text('', background_color='black')],
 | |
|     [sg.Text('00:00', size=(30, 1), font=('Helvetica', 30), justification='center',
 | |
|           text_color='white', key='text', background_color='black')],
 | |
|     [sg.Text('', background_color='black')],
 | |
|     [sg.Button('Pause', key='button', button_color=('white', '#001480')),
 | |
|      sg.Button('Reset', button_color=('white', '#007339'), key='Reset'),
 | |
|      sg.Exit(button_color=('white', '#8B1A1A'), key='Exit', )],
 | |
| ]
 | |
| 
 | |
| window = sg.Window('Running Timer', layout,
 | |
|             background_color='black', font='Helvetica 18')
 | |
| 
 | |
| # ----------------  main loop  ----------------
 | |
| current_time = 0
 | |
| paused = False
 | |
| start_time = int(round(time.time() * 100))
 | |
| while True:
 | |
|     # --------- read and update window --------
 | |
|     if not paused:
 | |
|         event, values = window.read(timeout=0)
 | |
|         current_time = int(round(time.time() * 100)) - start_time
 | |
|     else:
 | |
|         event, values = window.read()
 | |
|     print(event, values) if event != sg.TIMEOUT_KEY else None
 | |
| 
 | |
|     if event == 'button':
 | |
|         event = window[event].GetText()
 | |
|     # --------- Do Button Operations --------
 | |
|     
 | |
|     if event in (None, 'Exit'):        # ALWAYS give a way out of program
 | |
|         break
 | |
|     
 | |
|     if event == 'Reset':
 | |
|         start_time = int(round(time.time() * 100))
 | |
|         current_time = 0
 | |
|         paused_time = start_time
 | |
|     
 | |
|     elif event == 'Pause':
 | |
|         paused = True
 | |
|         paused_time = int(round(time.time() * 100))
 | |
|         element = window['button']
 | |
|         element.update(text='Run')
 | |
|     
 | |
|     elif event == 'Run':
 | |
|         paused = False
 | |
|         start_time = start_time + int(round(time.time() * 100)) - paused_time
 | |
|         element = window['button']
 | |
|         element.update(text='Pause')
 | |
| 
 | |
|     # --------- Display timer in window --------
 | |
|     window['text'].update('{:02d}:{:02d}.{:02d}'.format((current_time // 100) // 60,
 | |
|                                                                     (current_time //
 | |
|                                                                      100) % 60,
 | |
|                                                                     current_time % 100))
 | |
| # --------- After loop --------
 | |
| window.close()
 |