'Initialize WidgetGroup, adding specified widgets into this group.
widgetList can be:
- a list of widget specifications (widget, [name], [scale])
- a dict of name: widget pairs
- any QObject, and all compatible child widgets will be added recursively.
The \'scale\' parameter for each widget allows QSpinBox to display a different value than the value recorded
in the group state (for example, the program may set a spin box value to 100e-6 and have it displayed as 100 to the user)'

def __init__(self, widgetList=None):

    QtCore.QObject.__init__(self)
    self.widgetList = weakref.WeakKeyDictionary()
    self.scales = weakref.WeakKeyDictionary()
    self.cache = {}
    self.uncachedWidgets = weakref.WeakKeyDictionary()
    if isinstance(widgetList, QtCore.QObject):
        self.autoAdd(widgetList)
    elif isinstance(widgetList, list):
        for w in widgetList:
            self.addWidget(*w)
    elif isinstance(widgetList, dict):
        for (name, w) in widgetList.items():
            self.addWidget(w, name)
    elif (widgetList is None):
        return
    else:
        raise Exception(('Wrong    argument    type    %s' % type(widgetList)))
