Files
@ dde4374cb22a
Branch filter:
Location: OneEye/src/gui/__init__.py - annotation
dde4374cb22a
1.4 KiB
text/x-python
imgView: fixed coordinates transformation. fixed onResize glitches
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()
|