docs: def next(self):
          """
          Goes to the previous page for this wizard.
          """
          curr_page = self.currentPage()
          if not curr_page:
              return
          elif not curr_page.validatePage():
              return
  
          pageId = curr_page.nextId()
          try:
              next_page = self._pages[pageId]
          except KeyError:
              return
  
          self._currentId = pageId
          self._navigation.append(pageId)
  
          y = curr_page.y()
          next_page.move(self.width(), y)
  
          # animate the last page in
          anim_in = QtCore.QPropertyAnimation(self)
          anim_in.setTargetObject(curr_page)
          anim_in.setPropertyName('pos')
          anim_in.setStartValue(curr_page.pos())
          anim_in.setEndValue(QtCore.QPoint(-curr_page.width(), y))
          anim_in.setDuration(self.animationSpeed())
          anim_in.setEasingCurve(QtCore.QEasingCurve.Linear)
  
          # animate the current page out
          anim_out = QtCore.QPropertyAnimation(self)
          anim_out.setTargetObject(next_page)
          anim_out.setPropertyName('pos')
          anim_out.setStartValue(next_page.pos())
          anim_out.setEndValue(curr_page.pos())
          anim_out.setDuration(self.animationSpeed())
          anim_out.setEasingCurve(QtCore.QEasingCurve.Linear)
  
          # create the anim group
          anim_grp = QtCore.QParallelAnimationGroup(self)
          anim_grp.addAnimation(anim_in)
          anim_grp.addAnimation(anim_out)
          anim_grp.finished.connect(curr_page.hide)
          anim_grp.finished.connect(anim_grp.deleteLater)
  
          next_page.show()
  
          # update the button states
          self._buttons[self.WizardButton.BackButton].setVisible(True)
          self._buttons[self.WizardButton.NextButton].setVisible(self.canGoForward())
          self._buttons[self.WizardButton.RetryButton].setVisible(self.canRetry())
          self._buttons[self.WizardButton.CommitButton].setVisible(next_page.isCommitPage())
          self._buttons[self.WizardButton.FinishButton].setVisible(next_page.isFinalPage())
          self.adjustSize()
  
          # initialize the new page
          self.currentIdChanged.emit(pageId)
          next_page.initializePage()
          anim_grp.start()