import tkinter as tk from tkinter import N,S,E,W,LEFT from .util import MsgMixin class Settings(tk.Toplevel,MsgMixin): def __init__(self,parent): self.parent=parent tk.Toplevel.__init__(self, parent.root) self.title("Settings | OneEye") self.columnconfigure(0,weight=1) self.content=tk.Frame(self) self.content.grid(column=0,row=0,sticky=(N,S,E,W)) self.content.columnconfigure(0,weight=1) self._create() self.parent.settings=self self.parent.root.event_generate("<>") self.parent.sendMsg("fetchParams") def _create(self): self.scaleTresB=tk.Scale(self.content, orient=tk.HORIZONTAL, length=200, from_=0.0, to=100.0, command=self.refreshTresholds) self.scaleTresW=tk.Scale(self.content, orient=tk.HORIZONTAL, length=200, from_=0.0, to=100.0, command=self.refreshTresholds) blackLabel=tk.Label(self.content,text="Black stone treshold (intensity)") whiteLabel=tk.Label(self.content,text="White stone treshold (intensity)") blackLabel.grid(column=0,row=0) self.scaleTresB.grid(column=0,row=1,sticky=(E,W)) whiteLabel.grid(column=0,row=2) self.scaleTresW.grid(column=0,row=3,sticky=(E,W)) self.buttonFrame=tk.Frame(self.content) self.buttonFrame.grid(column=0,row=4,sticky=(W,)) self.confirmButton=tk.Button(self.buttonFrame,text="OK",command=self.sendParams) self.cancelButton=tk.Button(self.buttonFrame,text="Cancel",command=lambda: self.destroy()) self.confirmButton.pack(side=LEFT) self.cancelButton.pack(side=LEFT) def refreshTresholds(self,_): params=self.parent.detector.params params.tresB=self.scaleTresB.get() params.tresW=self.scaleTresW.get() def setParams(self,params): self.scaleTresB.set(params.tresB) self.scaleTresW.set(params.tresW) def sendParams(self): self.parent.sendParams() self.destroy()