code: def optsChanged(self, param, opts):
          
          # 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()
docs: Called when any options are changed that are not
          name, value, default, or limits