kdeui Library API Documentation

KDoubleSpinBox Class Reference

This class provides a spin box for fractional numbers. A spin box for fractional numbers. More...

#include <knuminput.h>

Inheritance diagram for KDoubleSpinBox:

Inheritance graph
[legend]
Collaboration diagram for KDoubleSpinBox:

Collaboration graph
[legend]
List of all members.

Public Slots

virtual void setValue (double value)

Signals

void valueChanged (double value)

Public Member Functions

 KDoubleSpinBox (QWidget *parent=0, const char *name=0)
 KDoubleSpinBox (double lower, double upper, double step, double value, int precision=2, QWidget *parent=0, const char *name=0)
bool acceptLocalizedNumbers () const
virtual void setAcceptLocalizedNumbers (bool accept)
void setRange (double lower, double upper, double step=0.01, int precision=2)
int precision () const
void setPrecision (int precision)
virtual void setPrecision (int precision, bool force)
double value () const
double minValue () const
void setMinValue (double value)
double maxValue () const
void setMaxValue (double value)
double lineStep () const
void setLineStep (double step)
void setValidator (const QValidator *)

Protected Slots

void slotValueChanged (int value)

Protected Member Functions

virtual QString mapValueToText (int)
virtual int mapTextToValue (bool *)
virtual void virtual_hook (int id, void *data)

Detailed Description

This class provides a spin box for fractional numbers. A spin box for fractional numbers.

Parameters

There are a number of interdependent parameters whose relation to each other you need to understand in order to make successful use of the spin box.

Since we work with fixed-point numbers internally, the maximum precision is a function of the valid range and vice versa. More precisely, the following relations hold:
   max( abs(minValue()), abs(maxValue() ) <= INT_MAX/10^precision
   maxPrecision = floor( log10( INT_MAX/max(abs(minValue()),abs(maxValue())) ) )

Since the value, bounds and step are rounded to the current precision, you may experience that the order of setting above parameters matters. E.g. the following are not equivalent (try it!):

   // sets precision,
   // then min/max value (rounded to precision and clipped to obtainable range if needed)
   // then value and lineStep
   KDoubleSpinBox * spin = new KDoubleSpinBox( 0, 9.999, 0.001, 4.321, 3, this );

   // sets minValue to 0; maxValue to 10.00(!); value to 4.32(!) and only then
   // increases the precision - too late, since e.g. value has already been rounded...
   KDpubleSpinBox * spin = new KDoubleSpinBox( this );
   spin->setMinValue( 0 );
   spin->setMaxValue( 9.999 );
   spin->setValue( 4.321 );
   spin->setPrecision( 3 );

Author:
Marc Mutz <mutz@kde.org>
Version:
Id
knuminput.h,v 1.56 2003/10/07 22:53:26 mueller Exp
Since:
3.1

Definition at line 823 of file knuminput.h.


Constructor & Destructor Documentation

KDoubleSpinBox::KDoubleSpinBox QWidget parent = 0,
const char *  name = 0
 

Constructs a KDoubleSpinBox with parent parent and default values for range and value (whatever QRangeControl uses) and precision (2).

Definition at line 996 of file knuminput.cpp.

References QSpinBox::editor(), and KStdAccel::name().

KDoubleSpinBox::KDoubleSpinBox double  lower,
double  upper,
double  step,
double  value,
int  precision = 2,
QWidget parent = 0,
const char *  name = 0
 

Constructs a KDoubleSpinBox with parent parent, range [lower,upper], lineStep step, precision precision and initial value value.

Definition at line 1004 of file knuminput.cpp.

References QSpinBox::editor(), KStdAccel::name(), setRange(), setValue(), and valueChanged().


Member Function Documentation

bool KDoubleSpinBox::acceptLocalizedNumbers  )  const
 

Returns:
whether the spinbox uses localized numbers

Definition at line 1020 of file knuminput.cpp.

void KDoubleSpinBox::setAcceptLocalizedNumbers bool  accept  )  [virtual]
 

Sets whether to use and accept localized numbers as returned by KLocale::formatNumber().

Definition at line 1026 of file knuminput.cpp.

void KDoubleSpinBox::setRange double  lower,
double  upper,
double  step = 0.01,
int  precision = 2
 

Sets a new range for the spin box values.

Note that lower, upper and step are rounded to precision decimal points first.

Definition at line 1031 of file knuminput.cpp.

References setLineStep(), setMaxValue(), setMinValue(), and setPrecision().

Referenced by KDoubleSpinBox().

int KDoubleSpinBox::precision  )  const
 

Returns:
the current number of decimal points displayed.

Definition at line 1041 of file knuminput.cpp.

void KDoubleSpinBox::setPrecision int  precision  ) 
 

Equivalent to setPrecsion( precision, false ); Needed since Qt's moc doesn't ignore trailing parameters with default args when searching for a property setter method.

Definition at line 1045 of file knuminput.cpp.

Referenced by setRange().

void KDoubleSpinBox::setPrecision int  precision,
bool  force
[virtual]
 

Sets the number of decimal points to use.

Note that there is a tradeoff between the precision used and the available range of values. See the class docs for more.

Parameters:
precision the new number of decimal points to use
force disables checking of bound violations that can arise if you increase the precision so much that the minimum and maximum values can't be represented anymore. Disabling is useful if you don't want to keep the current min and max values anyway. This is what e.g. setRange() does.

Definition at line 1049 of file knuminput.cpp.

double KDoubleSpinBox::value  )  const
 

Returns:
the current value

Reimplemented from QSpinBox.

Definition at line 1071 of file knuminput.cpp.

Referenced by KInputDialog::getDouble(), and setValue().

double KDoubleSpinBox::minValue  )  const
 

Returns:
the current lower bound

Reimplemented from QSpinBox.

Definition at line 1088 of file knuminput.cpp.

Referenced by setLineStep(), and setValue().

void KDoubleSpinBox::setMinValue double  value  ) 
 

Sets the lower bound of the range to value, subject to the contraints that value is first rounded to the current precision and then clipped to the maximum representable interval.

See also:
maxValue, minValue, setMaxValue, setRange

Definition at line 1092 of file knuminput.cpp.

Referenced by setRange().

double KDoubleSpinBox::maxValue  )  const
 

Returns:
the current upper bound

Reimplemented from QSpinBox.

Definition at line 1101 of file knuminput.cpp.

Referenced by setLineStep(), and setValue().

void KDoubleSpinBox::setMaxValue double  value  ) 
 

Sets the upper bound of the range to value, subject to the contraints that value is first rounded to the current precision and then clipped to the maximum representable interval.

See also:
minValue, maxValue, setMinValue, setRange

Definition at line 1105 of file knuminput.cpp.

Referenced by setRange().

double KDoubleSpinBox::lineStep  )  const
 

Returns:
the current step size

Reimplemented from QSpinBox.

Definition at line 1113 of file knuminput.cpp.

void KDoubleSpinBox::setLineStep double  step  ) 
 

Sets the step size for clicking the up/down buttons to step, subject to the constraints that step is first rounded to the current precision and then clipped to the meaningful interval [1, maxValue - minValue].

Definition at line 1117 of file knuminput.cpp.

References maxValue(), and minValue().

Referenced by setRange().

void KDoubleSpinBox::setValidator const QValidator  ) 
 

Overridden to ignore any setValidator() calls.

Reimplemented from QSpinBox.

Definition at line 1147 of file knuminput.cpp.

void KDoubleSpinBox::valueChanged double  value  )  [signal]
 

Emitted whenever QSpinBox::valueChanged( int ) is emitted.

Referenced by KDoubleSpinBox().

void KDoubleSpinBox::setValue double  value  )  [virtual, slot]
 

Sets the current value to value, cubject to the constraints that value is frist rounded to the current precision and then clipped to the interval [minvalue(),maxValue()].

Definition at line 1075 of file knuminput.cpp.

References maxValue(), minValue(), and value().

Referenced by KDoubleSpinBox().


The documentation for this class was generated from the following files:
KDE Logo
This file is part of the documentation for kdeui Library Version 3.2.2.
Documentation copyright © 1996-2004 the KDE developers.
Generated on Wed May 12 09:05:06 2004 by doxygen 1.3.4 written by Dimitri van Heesch, © 1997-2003