Called when any options are changed that are not
        name, value, default, or limits

def optsChanged(self, param, opts):
        """Called when any options are changed that are not
        name, value, default, or limits"""
        # print "opts changed:", opts
        ParameterItem.optsChanged(self, param, opts)
        w = self.widget
        if 'readonly' in opts:
            self.updateDefaultBtn()
            if isinstance(w, (QtWidgets.QCheckBox, ColorButton)):
                w.setEnabled(not opts['readonly'])

        # If widget is a SpinBox, pass options straight through
        if isinstance(self.widget, SpinBox):
            if 'units' in opts and 'suffix' not in opts:
                opts['suffix'] = opts['units']
            w.setOpts(**opts)
            self.updateDisplayLabel()