Esempio n. 1
0
    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)