#include "ByteConvertorDialog.h"
#include<QLabel>
#include<QLineEdit>
#include<QPushButton>
#include<QGridLayout>
#include<QVBoxLayout>
#include<QHBoxLayout>
#include<QValidator>
ByteConvertorDialog::ByteConvertorDialog()
{
mainLayout -> addLayout(editLayout);
mainLayout -> addStretch();
mainLayout ->addLayout(pushButton);
editLayout ->addWidget(bin,0,0);
editLayout ->addWidget(dec,1,0);
editLayout ->addWidget(hex,2,0);
editLayout ->addWidget(binEdit,0,1);
editLayout ->addWidget(decEdit,1,1);
editLayout ->addWidget(hexEdit,2,1);
pushButton ->addStretch();
pushButton ->addWidget(button);
button ->setDefault(true);
decEdit->setValidator(decValidator);
hexEdit->setValidator(hexValidator);
binEdit->setValidator(binValidator);
connect(button,SIGNAL(clicked()),this,SLOT(accept()));
connect(decEdit,SIGNAL(textEdited(const QString&)),this,SLOT(decChanged(const QString&)));
connect(binEdit,SIGNAL(textEdited(const QString&)),this,SLOT(binChanged(const QString&)));
connect(hexEdit,SIGNAL(textEdited(const QString&)),this,SLOT(hexChanged(const QString&)));
}
void ByteConvertorDialog
::decChanged(const QString &newValue
) {
bool ok;
int num= newValue.toInt(&ok);
if (ok) {
hexEdit
->setText
(QString::number(num,
16));
binEdit
->setText
(QString::number(num,
2));
} else {
hexEdit->setText("");
binEdit->setText("");
}
}
void ByteConvertorDialog
::binChanged(const QString &newValue
) {
bool ok;
int num= newValue.toInt(&ok);
if (ok) {
hexEdit
->setText
(QString::number(num,
16));
decEdit
->setText
(QString::number(num
));
} else {
hexEdit->setText("");
decEdit->setText("");
}
}
void ByteConvertorDialog
::hexChanged(const QString &newValue
) {
bool ok;
int num= newValue.toInt(&ok);
if (ok) {
decEdit
->setText
(QString::number(num,
10));
binEdit
->setText
(QString::number(num,
2));
} else {
decEdit->setText("");
binEdit->setText("");
}
}
#include "ByteConvertorDialog.h"
#include<QLabel>
#include<QLineEdit>
#include<QPushButton>
#include<QGridLayout>
#include<QVBoxLayout>
#include<QHBoxLayout>
#include<QValidator>
ByteConvertorDialog::ByteConvertorDialog()
{
QVBoxLayout * mainLayout = new QVBoxLayout(this);
QGridLayout * editLayout = new QGridLayout;
QHBoxLayout * pushButton = new QHBoxLayout;
mainLayout -> addLayout(editLayout);
mainLayout -> addStretch();
mainLayout ->addLayout(pushButton);
QLabel * bin = new QLabel("Binary");
QLabel * dec = new QLabel("Decimal");
QLabel * hex = new QLabel("Hexadecimal");
decEdit = new QLineEdit;
binEdit = new QLineEdit;
hexEdit = new QLineEdit;
QPushButton *button = new QPushButton("Quit");
editLayout ->addWidget(bin,0,0);
editLayout ->addWidget(dec,1,0);
editLayout ->addWidget(hex,2,0);
editLayout ->addWidget(binEdit,0,1);
editLayout ->addWidget(decEdit,1,1);
editLayout ->addWidget(hexEdit,2,1);
pushButton ->addStretch();
pushButton ->addWidget(button);
button ->setDefault(true);
QIntValidator* decValidator = new QIntValidator(0,255,decEdit);
decEdit->setValidator(decValidator);
QRegExpValidator* hexValidator = new QRegExpValidator(QRegExp("[0-9A-Fa-f]{1,2}"),hexEdit);
hexEdit->setValidator(hexValidator);
QRegExpValidator*binValidator = new QRegExpValidator(QRegExp("[01]{1,8}"),binEdit);
binEdit->setValidator(binValidator);
connect(button,SIGNAL(clicked()),this,SLOT(accept()));
connect(decEdit,SIGNAL(textEdited(const QString&)),this,SLOT(decChanged(const QString&)));
connect(binEdit,SIGNAL(textEdited(const QString&)),this,SLOT(binChanged(const QString&)));
connect(hexEdit,SIGNAL(textEdited(const QString&)),this,SLOT(hexChanged(const QString&)));
}
void ByteConvertorDialog::decChanged(const QString &newValue)
{
bool ok;
int num= newValue.toInt(&ok);
if (ok) {
hexEdit->setText(QString::number(num, 16));
binEdit->setText(QString::number(num, 2));
} else {
hexEdit->setText("");
binEdit->setText("");
}
}
void ByteConvertorDialog::binChanged(const QString &newValue)
{
bool ok;
int num= newValue.toInt(&ok);
if (ok) {
hexEdit->setText(QString::number(num, 16));
decEdit->setText(QString::number(num));
} else {
hexEdit->setText("");
decEdit->setText("");
}
}
void ByteConvertorDialog::hexChanged(const QString &newValue)
{
bool ok;
int num= newValue.toInt(&ok);
if (ok) {
decEdit->setText(QString::number(num, 10));
binEdit->setText(QString::number(num, 2));
} else {
decEdit->setText("");
binEdit->setText("");
}
}
To copy to clipboard, switch view to plain text mode
Bookmarks