2 changed files with 60 additions and 0 deletions
@ -0,0 +1,35 @@ |
|||||||
|
#include "HexSpinBox.h" |
||||||
|
|
||||||
|
#include <qregexp.h> |
||||||
|
|
||||||
|
HexSpinBox::HexSpinBox(QWidget *parent) |
||||||
|
: QSpinBox(parent), validator(NULL) |
||||||
|
{ |
||||||
|
setRange(0, 0x7fffffff); |
||||||
|
validator = new QRegExpValidator(QRegExp("[0-9A-Fa-f]{1,8}"), this); |
||||||
|
} |
||||||
|
|
||||||
|
HexSpinBox::~HexSpinBox(void) |
||||||
|
{ |
||||||
|
if(this->validator) |
||||||
|
{ |
||||||
|
delete this->validator; |
||||||
|
this->validator = NULL; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
QValidator::State HexSpinBox::validate(QString &text, int &pos) const |
||||||
|
{ |
||||||
|
return validator->validate(text, pos); |
||||||
|
} |
||||||
|
|
||||||
|
QString HexSpinBox::textFromValue(int value) const |
||||||
|
{ |
||||||
|
return QString::number(value, 16).toUpper(); |
||||||
|
} |
||||||
|
|
||||||
|
int HexSpinBox::valueFromText(const QString &text) const |
||||||
|
{ |
||||||
|
bool ok; |
||||||
|
return text.toInt(&ok, 16); |
||||||
|
} |
@ -0,0 +1,25 @@ |
|||||||
|
#ifndef HEXSPINBOX_H_ |
||||||
|
#define HEXSPINBOX_H_ |
||||||
|
|
||||||
|
#include <qspinbox.h> |
||||||
|
|
||||||
|
class QRegExpValidator; |
||||||
|
|
||||||
|
class HexSpinBox : public QSpinBox |
||||||
|
{ |
||||||
|
Q_OBJECT |
||||||
|
public: |
||||||
|
HexSpinBox(QWidget *parent = 0); |
||||||
|
~HexSpinBox(void); |
||||||
|
|
||||||
|
protected: |
||||||
|
QValidator::State validate(QString &text, int &pos) const; |
||||||
|
int valueFromText(const QString &text) const; |
||||||
|
QString textFromValue(int value) const; |
||||||
|
|
||||||
|
private: |
||||||
|
QRegExpValidator *validator; |
||||||
|
}; |
||||||
|
|
||||||
|
#endif // HEXSPINBOX_H_
|
||||||
|
|
Loading…
Reference in new issue