cipher1729
22nd June 2011, 02:08
I'm trying to create a simple binary to decimal to hexadecimal appplication..
My code seems to be compiling but each time..I'm getting a SIGSESV error. What am I doing wrong? Thanks.
main.cpp
#include <QApplication>
#include "ByteConvertorDialog.h"
int main(int argc,char* argv[])
{
QApplication a(argc,argv);
ByteConvertorDialog c;
c.setAttribute(Qt::WA_QuitOnClose);
c.show();
return a.exec();
}
newByte.cpp
#include "ByteConvertorDialog.h"
#include<QLabel>
#include<QLineEdit>
#include<QPushButton>
#include<QGridLayout>
#include<QVBoxLayout>
#include<QHBoxLayout>
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);
connect(button,SIGNAL(clicked()),this,SLOT(accept( )));
connect(decEdit,SIGNAL(textChanged(const QString&)),this,SLOT(decChanged(const QString&)));
connect(binEdit,SIGNAL(textChanged(const QString&)),this,SLOT(binChanged(const QString&)));
connect(hexEdit,SIGNAL(textChanged(const QString&)),this,SLOT(hexChanged(const QString&)));
}
void ByteConvertorDialog::decChanged(const QString &newValue)
{
bool ok;
int num= newValue.toInt(&ok);
binEdit->setText(QString::number(num,2));
hexEdit->setText(QString::number(num,16));
}
void ByteConvertorDialog::binChanged(const QString &newValue)
{
bool ok;
int num= newValue.toInt(&ok);
decEdit->setText(QString::number(num,10));
hexEdit->setText(QString::number(num,16));
}
void ByteConvertorDialog::hexChanged(const QString &newValue)
{
bool ok;
int num= newValue.toInt(&ok);
binEdit->setText(QString::number(num,2));
decEdit->setText(QString::number(num,10));
}
byteConvertorDialog.h
#ifndef BYTECONVERTORDIALOG_H
#define BYTECONVERTORDIALOG_H
#include<QObject>
#include<QDialog>
#include<QLineEdit>
class QLineEdit;
class ByteConvertorDialog:public QDialog
{ Q_OBJECT
public:
ByteConvertorDialog();
private:
QLineEdit * decEdit;
QLineEdit * binEdit;
QLineEdit * hexEdit ;
private slots:
void decChanged(const QString&);
void binChanged(const QString&);
void hexChanged(const QString&);
};
#endif // BYTECONVERTORDIALOG_H
My code seems to be compiling but each time..I'm getting a SIGSESV error. What am I doing wrong? Thanks.
main.cpp
#include <QApplication>
#include "ByteConvertorDialog.h"
int main(int argc,char* argv[])
{
QApplication a(argc,argv);
ByteConvertorDialog c;
c.setAttribute(Qt::WA_QuitOnClose);
c.show();
return a.exec();
}
newByte.cpp
#include "ByteConvertorDialog.h"
#include<QLabel>
#include<QLineEdit>
#include<QPushButton>
#include<QGridLayout>
#include<QVBoxLayout>
#include<QHBoxLayout>
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);
connect(button,SIGNAL(clicked()),this,SLOT(accept( )));
connect(decEdit,SIGNAL(textChanged(const QString&)),this,SLOT(decChanged(const QString&)));
connect(binEdit,SIGNAL(textChanged(const QString&)),this,SLOT(binChanged(const QString&)));
connect(hexEdit,SIGNAL(textChanged(const QString&)),this,SLOT(hexChanged(const QString&)));
}
void ByteConvertorDialog::decChanged(const QString &newValue)
{
bool ok;
int num= newValue.toInt(&ok);
binEdit->setText(QString::number(num,2));
hexEdit->setText(QString::number(num,16));
}
void ByteConvertorDialog::binChanged(const QString &newValue)
{
bool ok;
int num= newValue.toInt(&ok);
decEdit->setText(QString::number(num,10));
hexEdit->setText(QString::number(num,16));
}
void ByteConvertorDialog::hexChanged(const QString &newValue)
{
bool ok;
int num= newValue.toInt(&ok);
binEdit->setText(QString::number(num,2));
decEdit->setText(QString::number(num,10));
}
byteConvertorDialog.h
#ifndef BYTECONVERTORDIALOG_H
#define BYTECONVERTORDIALOG_H
#include<QObject>
#include<QDialog>
#include<QLineEdit>
class QLineEdit;
class ByteConvertorDialog:public QDialog
{ Q_OBJECT
public:
ByteConvertorDialog();
private:
QLineEdit * decEdit;
QLineEdit * binEdit;
QLineEdit * hexEdit ;
private slots:
void decChanged(const QString&);
void binChanged(const QString&);
void hexChanged(const QString&);
};
#endif // BYTECONVERTORDIALOG_H