class_docstr: Can be set just like a :class:`ListParameter`, but allows for multiple values to be selected simultaneously.
  
  ============== ========================================================
  **Options**
  exclusive      When *False*, any number of options can be selected. The resulting ``value()`` is a list of
                 all checked values. When *True*, it behaves like a ``list`` type -- only one value can be selected.
                 If no values are selected and ``exclusive`` is set to *True*, the first available limit is selected.
                 The return value of an ``exclusive`` checklist is a single value rather than a list with one element.
  delay          Controls the wait time between editing the checkboxes/radio button children and firing a "value changed"
                 signal. This allows users to edit multiple boxes at once for a single value update.
  ============== ========================================================
code: def __init__(self, **opts):
      # Child options are populated through values, not explicit "children"
      if "children" in opts:
          raise ValueError(
              "Cannot pass 'children' to ChecklistParameter. Pass a 'value' key only."
          )
      self.targetValue = None
      limits = opts.setdefault("limits", [])
      self.forward, self.reverse = ListParameter.mapping(limits)
      value = opts.setdefault("value", limits)
      opts.setdefault("exclusive", False)
      super().__init__(**opts)
      # Force 'exclusive' to trigger by making sure value is not the same
      self.sigLimitsChanged.connect(self.updateLimits)
      self.sigOptionsChanged.connect(self.optsChanged)
      if len(limits):
          # Since update signal wasn't hooked up until after parameter construction, need to fire manually
          self.updateLimits(self, limits)
          # Also, value calculation will be incorrect until children are added, so make sure to recompute
          self.setValue(value)
  
      self.valChangingProxy = SignalProxy(
          self.sigValueChanging,
          delay=opts.get("delay", 1.0),
          slot=self._finishChildChanges,
          threadSafe=False,
      )
  
imports: from ...None import functions
  from ...Qt import QtWidgets
  from ...SignalProxy import SignalProxy
  from ..ParameterItem import ParameterItem
  from .None import BoolParameterItem, SimpleParameter
  from .basetypes import Emitter, GroupParameter, GroupParameterItem, WidgetParameterItem
  from .list import ListParameter
label_desc: Use image node_id 1 to create a new ChecklistParameter object from inherited base classes: GroupParameter with example: obj = ChecklistParameter()