class PlotImage(Qwt.QwtPlotItem): def __init__(self, logger): Qwt.QwtPlotItem.__init__(self) self.canvasscaledspectrogram = CanvasScaledSpectrogram(logger) def addData(self, freq, xyzs, logfreqscale): self.canvasscaledspectrogram.setlogfreqscale(logfreqscale) self.canvasscaledspectrogram.addData(freq, xyzs) def draw(self, painter, xMap, yMap, rect): # update the spectrogram according to possibly new canvas dimensions self.canvasscaledspectrogram.setcanvas_height(rect.height()) self.canvasscaledspectrogram.setcanvas_width(rect.width()) pixmap = self.canvasscaledspectrogram.getpixmap() offset = self.canvasscaledspectrogram.getpixmapoffset() rolling = True if rolling: # draw the whole canvas with a selected portion of the pixmap painter.drawPixmap(rect.left(), rect.top(), pixmap, offset, 0, 0, 0) else: # draw one single line of the pixmap at a moving position painter.drawPixmap(rect.left() + offset, rect.top(), pixmap, offset - 1, 0, 1, 0) #print painter #print xMap.p1(), xMap.p2(), xMap.s1(), xMap.s2() #print yMap.p1(), yMap.p2(), yMap.s1(), yMap.s2() #print rect def settimerange(self, timerange_seconds): self.canvasscaledspectrogram.setT(timerange_seconds) def setfreqrange(self, minfreq, maxfreq): self.canvasscaledspectrogram.setfreqrange(minfreq, maxfreq) def erase(self): self.canvasscaledspectrogram.erase()
class PlotImage(Qwt.QwtPlotItem): def __init__(self, logger): Qwt.QwtPlotItem.__init__(self) self.canvasscaledspectrogram = CanvasScaledSpectrogram(logger) def addData(self, freq, xyzs, logfreqscale): self.canvasscaledspectrogram.setlogfreqscale(logfreqscale) self.canvasscaledspectrogram.addData(freq, xyzs) def draw(self, painter, xMap, yMap, rect): # update the spectrogram according to possibly new canvas dimensions self.canvasscaledspectrogram.setcanvas_height(rect.height()) self.canvasscaledspectrogram.setcanvas_width(rect.width()) pixmap = self.canvasscaledspectrogram.getpixmap() offset = self.canvasscaledspectrogram.getpixmapoffset() rolling = True if rolling: # draw the whole canvas with a selected portion of the pixmap painter.drawPixmap(rect.left(), rect.top(), pixmap, offset, 0, 0, 0) else: # draw one single line of the pixmap at a moving position painter.drawPixmap(rect.left() + offset, rect.top(), pixmap, offset-1, 0, 1, 0) #print painter #print xMap.p1(), xMap.p2(), xMap.s1(), xMap.s2() #print yMap.p1(), yMap.p2(), yMap.s1(), yMap.s2() #print rect def settimerange(self, timerange_seconds): self.canvasscaledspectrogram.setT(timerange_seconds) def setfreqrange(self, minfreq, maxfreq): self.canvasscaledspectrogram.setfreqrange(minfreq, maxfreq) def erase(self): self.canvasscaledspectrogram.erase()