class_docstr: State manager for groups of widgets.
  
  WidgetGroup handles common problems that arise when dealing with groups of widgets like a control
  panel:
  - Provide a single place for saving / restoring the state of all widgets in the group
  - Provide a single signal for detecting when any of the widgets have changed
code: def addWidget(self, w, name=None, scale=None):
      if not self.acceptsType(w):
          raise Exception(
              "Widget type %s not supported by WidgetGroup" % type(w)
          )
      if name is None:
          name = str(w.objectName())
      if name == "":
          raise Exception(
              "Cannot add widget '%s' without a name." % str(w)
          )
      self.widgetList[w] = name
      self.scales[w] = scale
      self.readWidget(w)
  
      if type(w) in WidgetGroup.classes:
          signal = WidgetGroup.classes[type(w)][0]
      else:
          signal = w.widgetGroupInterface()[0]
  
      if signal is not None:
          if inspect.isfunction(signal) or inspect.ismethod(signal):
              signal = signal(w)
          signal.connect(self.widgetChanged)
      else:
          self.uncachedWidgets[w] = None
  
imports: import inspect
  import weakref
  from .Qt import QtCore, QtWidgets
label_desc: Use image node_id 2 for calling the WidgetGroup obj's underlying member method code with example usage: obj.addWidget(w, name, scale) without return types