def paintEvent(self, QPaintEvent): pic = QPicture() painter = QPainter(pic) getModuleAttrDict(Client.gameObject.module)['paintGame'](painter) painter.end() painter.begin(self) bRect = pic.boundingRect() self.sizeHint_ = bRect.size() painter.setWindow(bRect) painter.setViewTransformEnabled(True) width = self.width() height = self.height() if width * bRect.height() < height * bRect.width(): pheight = (width * bRect.height()) / bRect.width() painter.setViewport(0, (height - pheight) / 2, width, pheight) else: pwidth = (height * bRect.width()) / bRect.height() painter.setViewport((width - pwidth) / 2, 0, pwidth, height) self.invTrafo = painter.combinedTransform().inverted()[0] pic.play(painter)