2 changed files with 60 additions and 0 deletions
@ -0,0 +1,35 @@
@@ -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 @@
@@ -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