def __init__(self, parent=None): super(SimulatorViewer, self).__init__(parent) self.bitmap = QtGui.QPixmap() self.blt_bitmap = QtGui.QImage(self.size(), QtGui.QImage.Format_ARGB32) self.renderer = QtRenderer(self.blt_bitmap) self.resize_on_paint = False # code for async calling of update self.update_ = self.metaObject().method( self.metaObject().indexOfMethod('update()'))
def __init__(self, parent = None): super(SimulatorViewer, self).__init__(parent) self.bitmap = QtGui.QPixmap() self.blt_bitmap = QtGui.QImage(self.size(), QtGui.QImage.Format_ARGB32) self.renderer = QtRenderer(self.blt_bitmap) self.resize_on_paint = False # code for async calling of update self.update_ = self.metaObject().method(self.metaObject().indexOfMethod('update()'))
class SimulatorViewer(QtWidgets.QFrame): resized = QtCore.pyqtSignal() def __init__(self, parent=None): super(SimulatorViewer, self).__init__(parent) self.bitmap = QtGui.QPixmap() self.blt_bitmap = QtGui.QImage(self.size(), QtGui.QImage.Format_ARGB32) self.renderer = QtRenderer(self.blt_bitmap) self.resize_on_paint = False def paintEvent(self, event): super(SimulatorViewer, self).paintEvent(event) painter = QtGui.QPainter(self) painter.fillRect(self.rect(), QtCore.Qt.white) s = self.bitmap.rect().size() s.scale(self.rect().size(), QtCore.Qt.KeepAspectRatio) dx = (self.width() - s.width()) / 2 dy = (self.height() - s.height()) / 2 painter.drawPixmap(QtCore.QRect(QtCore.QPoint(dx, dy), s), self.bitmap, self.bitmap.rect()) def export_bitmap(self, filename): """Saves the view into a file.""" self.bitmap.save(filename) def update_bitmap(self): self.bitmap = QtGui.QPixmap.fromImage(self.blt_bitmap) # resize the canvas - at this point nothing is being drawn if self.resize_on_paint: self.blt_bitmap = QtGui.QImage(self.width(), self.height(), QtGui.QImage.Format_ARGB32) self.renderer.set_canvas(self.blt_bitmap) self.resize_on_paint = False self.update() def resizeEvent(self, event): """Resize panel and canvas""" # use cached size and flag self.resize_on_paint = True self.resized.emit()
class SimulatorViewer(QtGui.QFrame): resized = QtCore.pyqtSignal() def __init__(self, parent = None): super(SimulatorViewer, self).__init__(parent) self.bitmap = QtGui.QPixmap() self.blt_bitmap = QtGui.QImage(self.size(), QtGui.QImage.Format_ARGB32) self.renderer = QtRenderer(self.blt_bitmap) self.resize_on_paint = False def paintEvent(self, event): super(SimulatorViewer, self).paintEvent(event) painter = QtGui.QPainter(self) painter.fillRect(self.rect(),QtCore.Qt.white) s = self.bitmap.rect().size() s.scale(self.rect().size(),QtCore.Qt.KeepAspectRatio) dx = (self.width() - s.width())/2 dy = (self.height() - s.height())/2 painter.drawPixmap(QtCore.QRect(QtCore.QPoint(dx,dy),s),self.bitmap,self.bitmap.rect()) def export_bitmap(self,filename): """Saves the view into a file.""" self.bitmap.save(filename) def update_bitmap(self): self.bitmap = QtGui.QPixmap.fromImage(self.blt_bitmap) # resize the canvas - at this point nothing is being drawn if self.resize_on_paint: self.blt_bitmap = QtGui.QImage(self.width(), self.height(), QtGui.QImage.Format_ARGB32) self.renderer.set_canvas(self.blt_bitmap) self.resize_on_paint = False self.update() def resizeEvent(self,event): """Resize panel and canvas""" # use cached size and flag self.resize_on_paint = True self.resized.emit()
def __init__(self, parent=None): super(SimulatorViewer, self).__init__(parent) self.bitmap = QtGui.QPixmap() self.blt_bitmap = QtGui.QImage(self.size(), QtGui.QImage.Format_ARGB32) self.renderer = QtRenderer(self.blt_bitmap) self.resize_on_paint = False