def showxy(self, fitsimage, data_x, data_y): # Cut and show zoom image in zoom window self.zoom_x, self.zoom_y = data_x, data_y image = fitsimage.get_image() if image == None: # No image loaded into this channel return True # If this is a new source, then update our widget with the # attributes of the source if self.fitsimage_focus != fitsimage: self.focus_cb(self.fv, fitsimage) # Cut out and show the zoom detail #self.showzoom(image, data_x, data_y) try: self.zoomtask.stop() except: pass self.zoomtask = QtCore.QTimer() self.zoomtask.setSingleShot(True) self.zoomtask.timeout.connect( lambda: self.showzoom(image, data_x, data_y)) self.zoomtask.start(self.lagtime) return True
def __init__(self, logger=None, settings=None, render=None): #super(FitsImageQt, self).__init__(logger=logger, settings=settings) FitsImage.FitsImageBase.__init__(self, logger=logger, settings=settings) if render == None: render = 'widget' self.wtype = render if self.wtype == 'widget': self.imgwin = RenderWidget() elif self.wtype == 'scene': self.scene = QtGui.QGraphicsScene() self.imgwin = RenderGraphicsView(self.scene) else: raise FitsImageQtError("Undefined render type: '%s'" % (render)) self.imgwin.fitsimage = self self.pixmap = None self.message = None self.msgtimer = QtCore.QTimer() # QtCore.QObject.connect(self.msgtimer, QtCore.SIGNAL("timeout()"), # self.onscreen_message_off) self.msgtimer.timeout.connect(self.onscreen_message_off) self.msgfont = QtGui.QFont('Sans Serif', pointSize=24) self.set_bg(0.5, 0.5, 0.5, redraw=False) self.set_fg(1.0, 1.0, 1.0, redraw=False) # cursors self.cursor = {} # optimization of redrawing self.defer_redraw = True self.defer_lagtime = 25 self._defer_whence = 0 self._defer_lock = threading.RLock() self._defer_flag = False # self._defer_task = None self._defer_task = QtCore.QTimer() self._defer_task.setSingleShot(True) self._defer_task.timeout.connect(self._redraw) self.t_.setDefaults(show_pan_position=False)
def redo_delay(self, fitsimage): # Delay regeneration of thumbnail until most changes have propagated try: self.thmbtask.stop() except: pass self.thmbtask = QtCore.QTimer() self.thmbtask.setSingleShot(True) self.thmbtask.timeout.connect(lambda: self.redo_thumbnail(fitsimage)) self.thmbtask.start(self.lagtime) #print "added delay task..." return True
def __init__(self, logger=None, rgbmap=None, settings=None, render=None): ImageView.ImageViewBase.__init__(self, logger=logger, rgbmap=rgbmap, settings=settings) if render == None: render = 'widget' self.wtype = render if self.wtype == 'widget': self.imgwin = RenderWidget() elif self.wtype == 'scene': self.scene = QtGui.QGraphicsScene() self.imgwin = RenderGraphicsView(self.scene) else: raise ImageViewQtError("Undefined render type: '%s'" % (render)) self.imgwin.fitsimage = self self.pixmap = None # Qt expects 32bit BGRA data for color images self._rgb_order = 'BGRA' self.t_.setDefaults(show_pan_position=False, onscreen_ff='Sans Serif') self.message = None self.msgtimer = QtCore.QTimer() self.msgtimer.timeout.connect(self.onscreen_message_off) self.msgfont = QFont(self.t_['onscreen_ff'], pointSize=24) self.set_bg(0.5, 0.5, 0.5, redraw=False) self.set_fg(1.0, 1.0, 1.0, redraw=False) # cursors self.cursor = {} # For optomized redrawing self._defer_task = QtCore.QTimer() self._defer_task.setSingleShot(True) self._defer_task.timeout.connect(self.delayed_redraw)