time_recorder_gui_main.py 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. import PySimpleGUI
  2. from time_recoder.time_recoder_gui.time_recorder_gui_config import PAUSE_BUTTON_TEXT, START_BUTTON_TEXT, STOP_BUTTON_TEXT, \
  3. STOP_BUTTON_INTRODUCTION_TEXT, PAUSE_BUTTON_INTRODUCTION_TEXT, WINDOW_SIZE
  4. from time_recoder import save_recorded_time_in_table
  5. def create_layout():
  6. return [
  7. [PySimpleGUI.Text(PAUSE_BUTTON_INTRODUCTION_TEXT)],
  8. [PySimpleGUI.Text(STOP_BUTTON_INTRODUCTION_TEXT)],
  9. [PySimpleGUI.Button(START_BUTTON_TEXT),
  10. PySimpleGUI.Button(PAUSE_BUTTON_TEXT),
  11. PySimpleGUI.Button(STOP_BUTTON_TEXT)]
  12. ]
  13. def create_window(layout):
  14. return PySimpleGUI.Window('END_TR300 Arbeitserfassungstool ', layout=layout, size=WINDOW_SIZE)
  15. def window_is_closed(event):
  16. return event == PySimpleGUI.WIN_CLOSED
  17. def stop_button_is_pushed(event):
  18. return event == STOP_BUTTON_TEXT
  19. def start_button_is_pushed(event):
  20. return event == START_BUTTON_TEXT
  21. def pause_button_is_pushed(event):
  22. return event == PAUSE_BUTTON_TEXT
  23. def event_loop(window):
  24. while True:
  25. event, values = window.read()
  26. if window_is_closed(event):
  27. break
  28. if start_button_is_pushed(event):
  29. print('Start Time')
  30. if 'start_time' in locals():
  31. if 'pause_time' in locals():
  32. print('Time updated, Pause Timer Reseted')
  33. start_time = start_time + (pause_time - save_recorded_time_in_table.get_current_time_as_timestamp())
  34. pause_time = 'reseted'
  35. else:
  36. pass
  37. else:
  38. start_time = save_recorded_time_in_table.get_current_time_as_timestamp()
  39. if pause_button_is_pushed(event):
  40. print('Pause Timer Activated')
  41. if 'pause_time' in locals():
  42. if pause_time == 'reseted':
  43. print('New Pause Timer Activated')
  44. pause_time = save_recorded_time_in_table.get_current_time_as_timestamp()
  45. else:
  46. pass
  47. else:
  48. pause_time = save_recorded_time_in_table.get_current_time_as_timestamp()
  49. if stop_button_is_pushed(event):
  50. print('Timer Stoped Recording, Close the Window')
  51. if 'start_time' in locals():
  52. worked_time_in_minutes = (save_recorded_time_in_table.get_current_time_as_timestamp() - start_time) / 60
  53. save_recorded_time_in_table.save_recorded_time_in_table(worked_time_in_minutes)
  54. else:
  55. pass
  56. def gui_main():
  57. layout = create_layout()
  58. window = create_window(layout)
  59. event_loop(window)
  60. window.close()
  61. if __name__ == '__main__':
  62. gui_main()