123456789101112131415161718192021222324252627282930313233343536373839404142 |
- import tkinter as tk
- from tkinter.ttk import Progressbar
- import pyglet
- class CalibrationPopUp(tk.Frame):
- def __init__(self, root, calibration_state):
- self.root = root
- self.font = pyglet.font.add_file("gui/SourceSansPro-Semibold.otf")
- self.calibration_state = calibration_state
- tk.Frame.__init__(self, root)
- self.pendingClose = False
- self.instruction = tk.Label(self,text="Start Calibration", anchor="c",font=("SourceSansPro-Semibold", 18))
- self.instruction.pack(side="top", fill="both", expand=True)
- button = tk.Button(self,text="OK", command=self.calibration_state.next_state_gui, anchor="c",height=1,width=5)
- button.pack(side="top", fill="both", expand=True)
- self.cs = Progressbar(self, orient='horizontal', mode='determinate')
- self.cs.pack(side="top", fill="both", expand=True)
- root.bind('<Escape>', self.close)
-
- def update(self):
- if not self.root.winfo_exists():
- return
- # display captured value count as progress
- self.cs['value'] = self.calibration_state.progress
- # read state from state machine
- if self.calibration_state.get_state() == self.calibration_state.WAITING_POS_1:
- self.instruction["text"] = "Move gondola to left at calibration_y_offset!"
- elif self.calibration_state.get_state() == self.calibration_state.WAITING_POS_2:
- self.instruction["text"] = "Move gondola to right at calibration_y_offset!"
- elif self.calibration_state.get_state() == self.calibration_state.CALIBRATION_DONE:
- self.instruction["text"] = "Calibration Done!"
- if not self.pendingClose:
- self.pendingClose = True
- self.root.after(1500, self.close)
- else:
- self.instruction["text"] = "Processing..."
- def close(self):
- if self.root.winfo_exists():
- self.root.destroy()
|