class QtPlotter(object): def __init__(self, app): super(QtPlotter, self).__init__() self.app = app self.create_QtPlotter() self.data = None def create_QtPlotter(self): self.RAW = 1 if self.RAW: self.win = QtGui.QMainWindow() self.win.resize(400, 400) self.rawImg = RawImageWidget(self.win, scaled=True) self.win.setCentralWidget(self.rawImg) self.win.show() else: self.win = pg.GraphicsLayoutWidget() self.win.show() self.win.setWindowTitle("TART2 - Live View") view = self.win.addViewBox() view.setAspectLocked(True) self.img = pg.ImageItem(border="w") view.addItem(self.img) self.timer = QtCore.QTimer() self.timer.timeout.connect(self.update) self.timer.start(0) self.q = Queue() def getPort(self): return self.q def update(self): # qsize = self.q.qsize() # print 'PlotQ size',qsize # if qsize > 2: # [self.q.get() for _ in range(qsize-1)] # print '!!!!!!!!!!!!!!!!!!!!!! dropping frames when displaying !!!!!!!!!!!!!!!!!!!!!!!!!!!!' a = time.time() if not self.q.empty(): # while not self.q.empty(): # print self.q.qsize() # if self.data is None: self.data = self.q.get() # else: # self.data[:] = self.q.get() # print 'drop drop drop.' # print data[0] b = time.time() print(b - a, "getting data off queue") if self.RAW: d_max = self.data.max() self.data /= d_max self.data *= 255 self.rawImg.setImage(self.data) else: self.data -= self.data.min() self.data /= self.data.max() self.data *= 255 # self.img.setImage(data,autoRange=True,autoLevels=True) self.img.setImage(self.data) self.app.processEvents() c = time.time() print(c - b, "update done.")
# init viewer application viewer_app = QtGui.QApplication([]) # define window and set layout viewer_window = QtGui.QWidget() viewer_window.setWindowTitle("Retina Simulation") viewer_window.setFixedSize(win_width, win_height) viewer_layout = QtGui.QGridLayout() viewer_window.setLayout(viewer_layout) # Frame widgets frame_wg = QtGui.QWidget() frame_layout = QtGui.QHBoxLayout() frame_wg.setLayout(frame_layout) draw_frame = RawImageWidget() draw_frame.setImage(bg_frame) draw_parvo = RawImageWidget() draw_parvo.setImage(bg_frame) draw_magno = RawImageWidget() draw_magno.setImage(bg_frame) frame_layout.addWidget(draw_frame) frame_layout.addWidget(draw_parvo) frame_layout.addWidget(draw_magno) # IPL and OPL Parvo Parameters Widget PARVO_wg = QtGui.QWidget() PARVO_layout = QtGui.QFormLayout() PARVO_layout.setRowWrapPolicy(QtGui.QFormLayout.DontWrapRows) PARVO_layout.setFieldGrowthPolicy(QtGui.QFormLayout.FieldsStayAtSizeHint) PARVO_layout.setFormAlignment(QtCore.Qt.AlignHCenter | QtCore.Qt.AlignTop)
# init viewer application viewer_app = QtGui.QApplication([]) # define window and set layout viewer_window = QtGui.QWidget() viewer_window.setWindowTitle("Retina Simulation") viewer_window.setFixedSize(win_width, win_height) viewer_layout = QtGui.QGridLayout() viewer_window.setLayout(viewer_layout) # Frame widgets frame_wg = QtGui.QWidget() frame_layout = QtGui.QHBoxLayout() frame_wg.setLayout(frame_layout) draw_frame = RawImageWidget() draw_frame.setImage(bg_frame) draw_parvo = RawImageWidget() draw_parvo.setImage(bg_frame) draw_magno = RawImageWidget() draw_magno.setImage(bg_frame) frame_layout.addWidget(draw_frame) frame_layout.addWidget(draw_parvo) frame_layout.addWidget(draw_magno) # IPL and OPL Parvo Parameters Widget PARVO_wg = QtGui.QWidget() PARVO_layout = QtGui.QFormLayout() PARVO_layout.setRowWrapPolicy(QtGui.QFormLayout.DontWrapRows) PARVO_layout.setFieldGrowthPolicy(QtGui.QFormLayout.FieldsStayAtSizeHint) PARVO_layout.setFormAlignment(QtCore.Qt.AlignHCenter | QtCore.Qt.AlignTop)