def __init__(self):
self.display = DisplayScene(self)
self.view = DisplayView(self.display)
self.view.show()
def Update(self):
if self.display.nodeExist():
if int(self.stepLineEdit.text()) < self.display.getMovementSteps():
#if self.display.nodeExist():
value = self.stepSizeLineEdit.text()
self.stepSizeSlider.setValue(int(value))
self.stepSize = value
self.display.updateScene(int(self.stepLineEdit.text()))
def Play(self):
if self.display.nodeExist():
i = int(self.stepLineEdit.text())
self.display.ViewNodeMovement()
totalMovementSteps = self.display.getMovementSteps()
i = i + int(self.stepSize)
#print totalMovementSteps
while i < totalMovementSteps:
self.stepLineEdit.setText(str(i))
i = i + int(math.ceil(totalMovementSteps / 1000.0))
self.Update()
graphViews = self.display.views()
graphViews [ 0 ].repaint()
self.stepLineEdit.repaint()
def updateScene(self, index):
self.currentTimeStep += index - self.currentStep
self.currentStep = index
graphViews = self.views()
sceneItems = self.items()
for item in sceneItems:
self.removeItem(item)
self.drawScene(sceneItems, graphViews)
def drawScene(self, sceneItems, graphViews):
nodePlatformList = [ ]
for item in sceneItems:
item.setGraphView(graphViews[0])
#stuff#
self.addItem(item)
class MainWidget(QWidget):
def __init__(self):
QWidget.__init__(self)
self.display = DisplayScene(self)
self.view = DisplayView(self.display)
self.view.show()
self.playButton = QPushButton("Play")
self.stepLineEdit = QLineEdit()
def Update(self):
if self.display.nodeExist():
if int(self.stepLineEdit.text()) < self.display.getMovementSteps():
#if self.display.nodeExist():
value = self.stepSizeLineEdit.text()
self.stepSizeSlider.setValue(int(value))
self.stepSize = value
self.display.updateScene(int(self.stepLineEdit.text()))
def Play(self):
if self.display.nodeExist():
i = int(self.stepLineEdit.text())
self.display.ViewNodeMovement()
totalMovementSteps = self.display.getMovementSteps()
i = i + int(self.stepSize)
#print totalMovementSteps
while i < totalMovementSteps:
self.stepLineEdit.setText(str(i))
i = i + int(math.ceil(totalMovementSteps / 1000.0))
self.Update()
graphViews = self.display.views()
graphViews [ 0 ].repaint()
self.stepLineEdit.repaint()
class DisplayScene(QGraphicsScene):
def updateScene(self, index):
self.currentTimeStep += index - self.currentStep
self.currentStep = index
graphViews = self.views()
sceneItems = self.items()
for item in sceneItems:
self.removeItem(item)
self.drawScene(sceneItems, graphViews)
def drawScene(self, sceneItems, graphViews):
nodePlatformList = [ ]
for item in sceneItems:
item.setGraphView(graphViews[0])
#stuff#
self.addItem(item)
To copy to clipboard, switch view to plain text mode
I have a good bit of code, so i cut out a lot of it. If something is not clear, just ask. Basically what happens is I have a play button, and when I click it it cycles through a while loop to update the display scene. So I guess what I want to do is to have some way to stop the while loop.
Bookmarks