'Set any arbitrary options on this parameter.
The exact behavior of this function will depend on the parameter type, but
most parameters will accept a common set of options: value, name, limits,
default, readonly, removable, renamable, visible, enabled, and expanded.
See :func:`Parameter.__init__ <pyqtgraph.parametertree.Parameter.__init__>`
for more information on default options.'

def setOpts(self, **opts):

    changed = OrderedDict()
    for k in opts:
        if (k == 'value'):
            self.setValue(opts[k])
        elif (k == 'name'):
            self.setName(opts[k])
        elif (k == 'limits'):
            self.setLimits(opts[k])
        elif (k == 'default'):
            self.setDefault(opts[k])
        elif ((k not in self.opts) or (self.opts[k] != opts[k])):
            self.opts[k] = opts[k]
            changed[k] = opts[k]
    if (len(changed) > 0):
        self.sigOptionsChanged.emit(self, changed)
