Files
@ 4c1ba49ea859
Branch filter:
Location: OneEye/src/gui/__init__.py - annotation
4c1ba49ea859
1.4 KiB
text/x-python
walking through the frames
5fe83c3dfb92 5fe83c3dfb92 5fe83c3dfb92 5fe83c3dfb92 4b4cae6939e8 4b4cae6939e8 5fe83c3dfb92 5fe83c3dfb92 5fe83c3dfb92 5fe83c3dfb92 5fe83c3dfb92 5fe83c3dfb92 5fe83c3dfb92 5f4489f36388 5fe83c3dfb92 4b4cae6939e8 d138366bd4bb d138366bd4bb 5fe83c3dfb92 5fe83c3dfb92 4c1ba49ea859 4c1ba49ea859 5fe83c3dfb92 5f4489f36388 5f4489f36388 5fe83c3dfb92 5f4489f36388 5fe83c3dfb92 5fe83c3dfb92 5fe83c3dfb92 5fe83c3dfb92 5f4489f36388 5f4489f36388 5fe83c3dfb92 5fe83c3dfb92 5f4489f36388 5fe83c3dfb92 5fe83c3dfb92 5fe83c3dfb92 5fe83c3dfb92 8af597b8f819 8af597b8f819 5fe83c3dfb92 5fe83c3dfb92 5f4489f36388 5f4489f36388 5fe83c3dfb92 5fe83c3dfb92 | import threading
import tkinter as tk
import config
from .mainwindow import MainWindow
from .boardview import BoardView
class GUI:
def __init__(self):
self.root = tk.Tk()
self.root.title("OneEye {0}.{1}.{2}".format(*config.misc.version))
self._coreMessages=None
self.mainWindow = MainWindow(self, master=self.root)
self.root.columnconfigure(0,weight=1)
self.root.rowconfigure(0,weight=1)
self.root.bind("<<redrawImgView>>", lambda e: self.mainWindow.redrawImgView())
self.root.bind("<Left>",lambda e: self.sendMsg("prevFrame"))
self.root.bind("<Right>",lambda e: self.sendMsg("nextFrame"))
def __call__(self,ownMessages,coreMessages):
self._coreMessages=coreMessages
self.listenerThread=threading.Thread(target=lambda: ownMessages.listen(self._handleEvent))
self.listenerThread.start()
self.mainWindow.mainloop()
def sendMsg(self,actionName,args=tuple(),kwargs=None):
self._coreMessages.send(actionName,args,kwargs)
def _handleEvent(self,e):
actions={"setCurrentFrame":self._frameHandler, "setGameState":self._stateHandler}
(actionName,args,kwargs)=e
return actions[actionName](*args,**kwargs)
def _frameHandler(self,newFrame):
self.mainWindow.setCurrentFrame(newFrame)
self.root.event_generate("<<redrawImgView>>")
def _stateHandler(self,gameState):
self.mainWindow.boardView.redrawState(gameState)
gui=GUI()
|