сорри, что-то ругается сервак, говорит, что такого юзера не существует
ну да ладно, вот код, он простейший:
#include <qspinbox.h>
#include <qstring.h>
class DecSpinBox : public QSpinBox
{
public:
DecSpinBox ( QWidget * parent = 0, const char * name = 0 ) : QSpinBox (parent, name) { setValidator(0); };
DecSpinBox ( int minValue, int maxValue, int step = 1, QWidget * parent = 0, const char * name = 0 ) : QSpinBox (minValue, maxValue, step, parent, name) { setValidator(0); };
protected:
virtual QString mapValueToText ( int v );
virtual int mapTextToValue ( bool * ok );
};
QString DecSpinBox::mapValueToText ( int v )
{
return QString("%1.%2").arg(v / 10).arg(v % 10);
}
int DecSpinBox::mapTextToValue ( bool * ok )
{
ok = false;
QString s = text();
// count "."
int c = s.contains('.');
if (c > 1) return -1; // more than one "." => error
s += '0'; // last "0" if no "." found
// remove "."
if (c) {
int i = s.find('.');
s.remove('.');
s.setLength(i+1);
}
// convert to number
return s.toInt(ok);
}
[/code]