def __init__(self, parent=None): super(AnimationControls, self).__init__(parent=parent) layout = QtGui.QVBoxLayout() layout.addWidget(header_label("Animation")) row = QtGui.QHBoxLayout() smallButton = QtCore.QSize(24, 24) bigButton = QtCore.QSize(32, 32) skipBack = QtGui.QPushButton(icon("skipBack.png"), '') skipBack.setToolTip("Skip to start") skipBack.setIconSize(smallButton) skipBack.clicked.connect(self.skipToStart) row.addWidget(skipBack) self.skipBack = skipBack self.scrubber = ToolTipSlider() self.scrubber.setOrientation(QtCore.Qt.Horizontal) self.scrubber.valueChanged.connect(self.changeFrame) scrubber_labeled = LabeledWidget() scrubber_labeled.widget = self.scrubber scrubber_labeled.label = "Current Frame" row.addWidget(scrubber_labeled) skipForward = QtGui.QPushButton(icon("skipForward.png"), '') skipForward.setToolTip("Skip to end") skipForward.setIconSize(smallButton) skipForward.clicked.connect(self.skipToEnd) row.addWidget(skipForward) self.skipForward = skipForward layout.addLayout(row) row = QtGui.QHBoxLayout() stepBack = QtGui.QPushButton(icon("stepBack.png"), "") stepBack.setIconSize(smallButton) stepBack.setToolTip("Step one frame backwards") stepBack.clicked.connect(self.stepBackOne) self.stepBack = stepBack row.addWidget(stepBack) self.playpause = QtGui.QPushButton(icon("play.png"), "") self.playpause.setToolTip("Play") self.playpause.setIconSize(bigButton) self.playpause.setCheckable(True) self.playpause.clicked.connect(self.togglePlayback) row.addWidget(self.playpause) stepForward = QtGui.QPushButton(icon("stepForward.png"), "") stepForward.setToolTip("Step one frame forward") stepForward.setIconSize(smallButton) stepForward.clicked.connect(self.stepForwardOne) row.addWidget(stepForward) self.stepForward = stepForward layout.addLayout(row) self.speed = ToolTipSlider() self.speed.setOrientation(QtCore.Qt.Horizontal) self.speed.valueChanged.connect(self.speedChanged.emit) speed_labeled = LabeledWidget() speed_labeled.widget = self.speed speed_labeled.label = "Frames per Second" layout.addWidget(speed_labeled) self.setLayout(layout) # Starts at frame 0 self.stepBack.setEnabled(False) self.skipBack.setEnabled(False)