code: def list_menu_multi(self, options, title="Choose one or more values", message="Choose one or more values",
                          defaults: list=None, **kwargs):
          
  
          if defaults is None:
              defaults = []
          choices = []
          optionNum = 0
          for option in options:
              choices.append(str(optionNum))
              choices.append(option)
              if option in defaults:
                  choices.append("on")
              else:
                  choices.append("off")
              optionNum += 1
              
          return_code, output = self._run_kdialog(title, ["--separate-output", "--checklist", message] + choices, kwargs)
          results = output.split()
  
          choices = [options[int(choice_index)] for choice_index in results]
          
          return DialogData(return_code, choices)
docs: Show a multiple-selection list menu
          
          Usage: C{dialog.list_menu_multi(options, title="Choose one or more values", message="Choose one or more values", defaults=[], **kwargs)}
          
          @param options: list of options (strings) for the dialog
          @param title: window title for the dialog
          @param message: message displayed above the list
          @param defaults: list of default values to be selected
          @return: a tuple containing the exit code and user choice
          @rtype: C{DialogData(int, List[str])}