Projektitiedosto
Code Block |
---|
Wiki Markup |
Projektitiedosto {code} TEMPLATE = app HEADERS = hexspinbox.h SOURCES = hexspinbox.cpp \ main.cpp {code} Otsikkotiedosto {code} |
Otsikkotiedosto
Code Block |
---|
#ifndef HEXSPINBOX_H
#define HEXSPINBOX_H
#include <QSpinBox>
class QRegExpValidator;//luokan etukateisesittely ettei kaantaja anna virhetta
//tehdaan oma HexSpinBox luokka ja peritaan se Qt:n QSpinBoxista
class HexSpinBox : public QSpinBox
{
Q_OBJECT
public:
HexSpinBox(QWidget *parent = 0);
protected:
QValidator::State validate(QString &text, int &pos) const;
int valueFromText(const QString &text) const;
QString textFromValue(int value) const;
private:
QRegExpValidator *validator;
};
#endif
{code}
|
Luokan
...
toteutus
Code Block |
---|
}
#include <QtGui>
#include "hexspinbox.h"
HexSpinBox::HexSpinBox(QWidget *parent)
: QSpinBox(parent)
{
setRange(0, 255);
validator = new QRegExpValidator(QRegExp("[0-9A-Fa-f]{1,8}"), this);
}
QValidator::State HexSpinBox::validate(QString &text, int &pos) const
{
return validator->validate(text, pos);
}
int HexSpinBox::valueFromText(const QString &text) const
{
bool ok;
return text.toInt(&ok, 16);
}
QString HexSpinBox::textFromValue(int value) const
{
return QString::number(value, 16).toUpper();
}
|
Pääohjelma
Code Block |
---|
{code} Pääohjelma {code} #include <QApplication> #include <QHBoxLayout> #include "hexspinbox.h" int main(int argc, char *argv[]) { QApplication app(argc, argv); HexSpinBox spinBox; spinBox.setWindowTitle(QObject::tr("Hex Spin Box")); spinBox.show(); return app.exec(); } {code} |