class PendulumGraphics(Pendulum): """pendulum which renders itself in a QGraphicsView""" def initGraphics(self, gView): self.gView = gView self.gScene = QGraphicsScene(self.gView) self.gView.setScene(self.gScene) self.gText = QGraphicsTextItem("Pendulum") self.gText.moveBy(0, -120) self.gGrid = Graphics.Items.Grid(size=(-140, -140, 140, 140), xstep=20, ystep=20, toolTip='the main grid') self.gCross = Graphics.Items.CrossX(toolTip='this is the fix point of the pendulum') self.gAxes = Graphics.Items.Axes(toolTip='theese are x,y-axes') self.gPendulum = GPendulum() self.gPendulum.setProperties((self.mass, self.length, self.radius, self.gravity, self.omega, self.friction)) self.gScene.addItem(self.gGrid) self.gScene.addItem(self.gText) self.gScene.addItem(self.gCross) self.gScene.addItem(self.gAxes) self.gScene.addItem(self.gPendulum) self.gView.setSceneRect(QRectF(-140, -140, 280, 280)) self.gPendulum.rotate(self.phi.v) def reset(self): self.gPendulum.rotate(self.initValues['phi']-self.phi.v) Pendulum.reset(self) def update(self, timeStep): Pendulum.update(self, timeStep) self.gPendulum.rotate(self.phiStep)