Files
@ bc96e653888e
Branch filter:
Location: OneEye/src/gui/mainwindow.py - annotation
bc96e653888e
2.0 KiB
text/x-python
GUI: added window menu
4b4cae6939e8 d138366bd4bb 4b4cae6939e8 bc96e653888e 4b4cae6939e8 9fa3f70d50ba 4b4cae6939e8 4b4cae6939e8 4b4cae6939e8 4b4cae6939e8 4b4cae6939e8 4b4cae6939e8 4b4cae6939e8 d138366bd4bb 4b4cae6939e8 4b4cae6939e8 4c1ba49ea859 4c1ba49ea859 4c1ba49ea859 4b4cae6939e8 9fa3f70d50ba 928d9a0edc05 4b4cae6939e8 bc96e653888e bc96e653888e bc96e653888e bc96e653888e bc96e653888e 4b4cae6939e8 9fa3f70d50ba 9fa3f70d50ba 4b4cae6939e8 9fa3f70d50ba 4b4cae6939e8 4b4cae6939e8 d138366bd4bb d138366bd4bb d138366bd4bb 4b4cae6939e8 4b4cae6939e8 4b4cae6939e8 4b4cae6939e8 4b4cae6939e8 4b4cae6939e8 4b4cae6939e8 4b4cae6939e8 4b4cae6939e8 d138366bd4bb d138366bd4bb d138366bd4bb d138366bd4bb 4b4cae6939e8 9fa3f70d50ba 4b4cae6939e8 4b4cae6939e8 4b4cae6939e8 9fa3f70d50ba 4b4cae6939e8 4b4cae6939e8 4b4cae6939e8 9fa3f70d50ba 9fa3f70d50ba 9fa3f70d50ba | import tkinter as tk
from tkinter import N,S,E,W
from . import menu
from .boardview import BoardView
from .imgview import ImgView
class MainWindow(tk.Frame):
def __init__(self,parent,master=None):
self.parent=parent
tk.Frame.__init__(self, master)
self.grid(column=0,row=0,sticky=(N,S,E,W))
self._createWidgets()
self.bind("<Left>",lambda e: self.sendMsg("prevFrame"))
self.bind("<Right>",lambda e: self.sendMsg("nextFrame"))
def setCurrentFrame(self,frame):
self.imgView.setImg(frame)
def _createWidgets(self):
# menu
self.parent.root.option_add('*tearOff',False)
menubar=menu.createTopBar(self.parent.root)
menu.createMainMenu(menubar)
# a captured frame with overlay graphics
self._imgWrapper=tk.Frame(self,width=480,height=360)
self.imgView=ImgView(self._imgWrapper,self)
self._imgWrapper.grid(column=0,row=0,sticky=(N,S,E,W))
# board with detected stones
self._boardWrapper=tk.Frame(self,width=360,height=360)
self.boardView=BoardView(self._boardWrapper)
self._boardWrapper.grid(column=1,row=0,sticky=(N,S,E,W))
# more controls below the board
self.scaleTresB=tk.Scale(self, orient=tk.HORIZONTAL, length=200, from_=0.0, to=100.0, command=self.refreshTresholds)
self.scaleTresW=tk.Scale(self, orient=tk.HORIZONTAL, length=200, from_=0.0, to=100.0, command=self.refreshTresholds)
self.scaleTresB.set(30.0) # !! proper defaults
self.scaleTresW.set(60.0)
self.scaleTresB.grid(column=0,row=1,columnspan=2)
self.scaleTresW.grid(column=0,row=2,columnspan=2)
self.columnconfigure(0,weight=1)
self.columnconfigure(1,weight=1)
self.rowconfigure(0,weight=1)
# render everything
self.imgView.redraw()
## Redraws the current image and its overlay.
def redrawImgView(self):
self.imgView.redraw()
def refreshTresholds(self,_):
self.parent.sendMsg("setTresholds",tuple(),{"tresB":self.scaleTresB.get(), "tresW":self.scaleTresW.get()})
def sendMsg(self,actionName,args=tuple(),kwargs=None):
self.parent.sendMsg(actionName,args,kwargs)
|