GUI.py 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. from re import A, I
  2. import customtkinter as ctk
  3. import json
  4. from PIL import Image, ImageTk
  5. import time
  6. import asyncio
  7. from dobluetooth import connect, getData
  8. import dobluetooth
  9. """
  10. parse esp32 data string and make each axis and accell data its own varible
  11. then do math on all those varibles to give us ONE NUMBER from all six numbers
  12. """
  13. def getCurrentScore():
  14. #than do math to figure out power level
  15. return 30
  16. names = []
  17. scores = []
  18. currentScore = getCurrentScore()
  19. highestScore = 100
  20. highScoreName = ""
  21. if currentScore > highestScore :
  22. highestScore = currentScore
  23. f = open("scores.txt", "rw")
  24. f.write(str(highestScore) + highScoreName)
  25. scores.append(highestScore)
  26. names.append(highScoreName)
  27. ctk.set_appearance_mode("System") # Modes: system (default), light, dark
  28. ctk.set_default_color_theme("blue") # Themes: blue (default), dark-blue, green
  29. app = ctk.CTk() # create CTk window like you do with the Tk window
  30. app.geometry("1440x1024")
  31. canvas = ctk.CTkCanvas(app, width=250, height=250,highlightthickness=0,)
  32. canvas.config(background="white")
  33. canvas.place(x=0,y=0)
  34. def placeLeaderboard():
  35. canvas.create_rectangle(0, 0, 500, 500, fill="grey20", width=2) #grey14 to match background
  36. intx = 0
  37. inty = 60
  38. for i in range(len(names)):
  39. label1 = ctk.CTkLabel(width=124,height=39,text_color="white",text=names[i], font=("Arial",15),master=app)
  40. label1.place(x=intx,y=inty)
  41. label2 = ctk.CTkLabel(width=124,height=39,text_color="white",text=scores[i], font=("Arial",15),master=app)
  42. label2.place(x=intx+125,y=inty)
  43. inty+=40
  44. LEADERBOARD = ctk.CTkLabel(width=249,height=39,text_color="white",text="Leaderboard", font=("Arial",50),master=app)
  45. LEADERBOARD.place(x=0,y=0)
  46. StartButton = ctk.CTkButton(width=00,height=150,text="START",fg_color="green",corner_radius=50,font=("Arial",50),text_color="gray99",master=app)
  47. StartButton.place(x=50,y=300)
  48. ResetButton = ctk.CTkButton(width=00,height=150,text="RESET",fg_color="orange2",corner_radius=50,font=("Arial",50),text_color="gray99", master=app)
  49. ResetButton.place(x=50,y=500)
  50. scoreTitle = ctk.CTkLabel(width=50,height=20,text_color="white",text="Current Score", font=("Arial",50),master=app)
  51. scoreTitle.place(x=350, y=20)
  52. scoreLabel = ctk.CTkLabel(width=50,height=20,text_color="white",text=currentScore, font=("Arial",50),master=app)
  53. scoreLabel.place(x=500, y=100)
  54. nameEntry = ctk.CTkEntry(width=300,height=50,master=app,font=("Arial",50))
  55. nameEntry.place(x=370,y=200)
  56. nameEntryButton = ctk.CTkButton(width=50,height=50,text="ENTER",fg_color="green",font=("Arial",20),text_color="gray99", master=app)
  57. nameEntryButton.place(x=670,y=205)
  58. image = Image.open("./Bell Drawing.png")
  59. photo = ImageTk.PhotoImage(image)
  60. image_label = ctk.CTkLabel(image=photo,text="",width=10, master=app)
  61. image_label.place(x=800,y=0)
  62. dinger = ctk.CTkLabel(width=40,height=30,text="",fg_color="gray77",master=app)
  63. dinger.place(x=1405,y=900)
  64. placeLeaderboard()
  65. #label = customtkinter.CTkLabel(app, text=f"Current Highest Record is: {highestRecord} | this was acomplished by: {highestRecordName}", fg_color="brown")
  66. #progressbar = customtkinter.CTkProgressBar(app, height=300,orientation="vertical",width=40,fg_color="blue",progress_color="green",mode='determinate')
  67. #progressbar.set(float(f"0.{highestRecord}"))
  68. #label.grid(column=0,row=0)
  69. #progressbar.grid(column=25,row=8)
  70. def data():
  71. asyncio.run(dobluetooth.getData())
  72. app.after(1000,data)
  73. app.mainloop()