def paintEvent(self, event): # draw the zoom rectangle more prominently try: drawRect = self.drawRect self.drawRect = False except AttributeError: # mpl 1.4 drawRect = self._drawRect self._drawRect = None # super needs this if self.renderer is None: self.renderer = self.get_renderer() super(MplCanvas, self).paintEvent(event) if drawRect: try: x, y, w, h = self.rect[0], self.rect[1], self.rect[ 2], self.rect[3] except TypeError: # mpl 1.4 x, y, w, h = drawRect p = QtGui.QPainter(self) p.setPen(QtGui.QPen(Qt.red, 2, Qt.DotLine)) p.drawRect(x, y, w, h) p.end() if self.roi_callback is not None: self.roi_callback(self)
def get_painter(self, canvas): p = QtGui.QPainter(canvas) facecolor = mpl_to_qt4_color(self.plot_opts['facecolor'], self.plot_opts['alpha']) edgecolor = mpl_to_qt4_color(self.plot_opts['edgecolor'], self.plot_opts['alpha']) pen = QtGui.QPen(edgecolor) pen.setWidth(self.plot_opts.get('edgewidth', 0)) p.setPen(pen) p.setBrush(QtGui.QBrush(facecolor)) return p