code: def qteNextApplet(self, numSkip: int=1, ofsApp: (QtmacsApplet, str)=None,
                        skipInvisible: bool=True, skipVisible: bool=False,
                        skipMiniApplet: bool=True,
                        windowObj: QtmacsWindow=None):
          if isinstance(ofsApp, str):
              ofsApp = self.qteGetAppletHandle(ofsApp)
          if len(self._qteAppletList) == 0:
              return None
          if skipVisible and skipInvisible:
              return None
          appList = list(self._qteAppletList)
          if skipInvisible:
              appList = [app for app in appList if app.qteIsVisible()]
              if windowObj is not None:
                  appList = [app for app in appList
                             if app.qteParentWindow() == windowObj]
          if skipVisible:
              appList = [app for app in appList if not app.qteIsVisible()]
          if skipMiniApplet:
              if self._qteMiniApplet in appList:
                  appList.remove(self._qteMiniApplet)
          if len(appList) == 0:
              return None
          if ofsApp is None:
              ofsApp = self._qteActiveApplet
          if ofsApp in self._qteAppletList:
              if ofsApp in appList:
                  ofsIdx = appList.index(ofsApp)
              else:
                  ofsIdx = self._qteAppletList.index(ofsApp)
                  glob_list = self._qteAppletList[ofsIdx:]
                  glob_list += self._qteAppletList[:ofsIdx]
                  ofsIdx = [appList.index(_) for _ in glob_list if _ in appList]
                  if len(ofsIdx) == 0:
                      msg = ('No match between global and local applet list'
                             ' --> Bug.')
                      self.qteLogger.error(msg, stack_info=True)
                      return None
                  else:
                      ofsIdx = ofsIdx[0]
          else:
              ofsIdx = 0
          ofsIdx = (ofsIdx + numSkip) % len(appList)
          return appList[ofsIdx]