'**Arguments:**
parent         Sets the parent widget for this SpinBox (optional). Default is None.
value          (float/int) initial value. Default is 0.0.
All keyword arguments are passed to :func:`setOpts`.'

def __init__(self, parent=None, value=0.0, **kwargs):

    QtGui.QAbstractSpinBox.__init__(self, parent)
    self.lastValEmitted = None
    self.lastText = ''
    self.textValid = True
    self.setMinimumWidth(0)
    self._lastFontHeight = None
    self.setSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Preferred)
    self.errorBox = ErrorBox(self.lineEdit())
    self.opts = {'bounds': [None, None], 'wrapping': False, 'step': D('0.01'), 'log': False, 'dec': False, 'int': False, 'suffix': '', 'siPrefix': False, 'delay': 0.3, 'delayUntilEditFinished': True, 'decimals': 6, 'format': asUnicode('{scaledValue:.{decimals}g}{suffixGap}{siPrefix}{suffix}'), 'regex': fn.FLOAT_REGEX, 'evalFunc': D, 'compactHeight': True}
    self.decOpts = ['step', 'minStep']
    self.val = D(asUnicode(value))
    self.updateText()
    self.skipValidate = False
    self.setCorrectionMode(self.CorrectToPreviousValue)
    self.setKeyboardTracking(False)
    self.setOpts(**kwargs)
    self._updateHeight()
    self.editingFinished.connect(self.editingFinishedEvent)
    self.proxy = SignalProxy(self.sigValueChanging, slot=self.delayedChange, delay=self.opts['delay'])
