My code for the calculator is:

calculator.h

#ifndef CALCULATOR_H
#define CALCULATOR_H
#include <QWidget>
#include <QGridLayout>
#include <QLineEdit>
#include <QLabel>
#include <QPushButton>
#include <QLCDNumber>
#include <QString>
#include <QMessageBox>
#include <QErrorMessage>

class Calculator : public QWidget {
Q_OBJECT
public:
//constructor
Calculator();
public slots:
//function to add the two numbers that the user inputs
void addition();
//function to subtract the two numbers that the user inputs
void subtraction();
//function to multiply the two numbers that the user inputs
void multiply();
//function to divide the two numbers that the user inputs
void division();
//function to clear widgets
void clearFields();
//function to close window
void close();
private:
QLineEdit* int1Entry;
QLineEdit* int2Entry;
QLCDNumber* lineoutput;
QErrorMessage* error;
};
#endif


calculator.cpp

#include "Calculator.h"
//constructor
Calculator::Calculator() {
//{initializes and places widgets using a layout
    int1Entry = new QLineEdit;
    int2Entry = new QLineEdit;
    setWindowTitle("Simple Calculator");
    QGridLayout* layout = new QGridLayout;
    QPushButton* additionButton = new QPushButton("+");
    QPushButton* subtractionButton = new QPushButton("-");
    QPushButton* multiplicationButton = new QPushButton("*");
    QPushButton* divisionButton = new QPushButton("/");
    lineoutput = new QLCDNumber;
    //result->setBinMode();
    lineoutput->setSegmentStyle(QLCDNumber::Flat);
    lineoutput->setDigitCount(8);
    QPushButton* clear = new QPushButton("Clear");
    QPushButton* close = new QPushButton("Close");
    layout->addWidget(int1Entry, 1,1);
    layout->addWidget(int2Entry, 2,1);
    layout->addWidget(additionButton, 0,2);
    layout->addWidget(subtractionButton, 1,2);
    layout->addWidget(multiplicationButton, 2,2);
    layout->addWidget(divisionButton, 3,2);
    layout->addWidget(new QLabel, 1, 0); //for spacing
    layout->addWidget(lineoutput,3,1);
    layout->addWidget(close, 4,1);
    layout->addWidget(clear, 4,2);
    setLayout(layout);
    //}
    //{connect signals and slots
    connect(additionButton, SIGNAL(clicked()), this, SLOT(addition()));
    connect(subtractionButton, SIGNAL(clicked()), this, SLOT(subtraction()));
    connect(multiplicationButton, SIGNAL(clicked()), this, SLOT(multiply()));
    connect(divisionButton, SIGNAL(clicked()), this, SLOT(division()));
    connect(clear, SIGNAL(clicked()), this, SLOT(clearFields()));
    connect(close, SIGNAL(clicked()), this, SLOT(close()));
    //}
}

//function to add the two numbers

void Calculator::addition()
{
    QString strFisrt = int1Entry->text();
    QString strSecond = int2Entry->text();

    bool ok;
    int number1 = strFisrt.toInt(&ok);
    int number2 = strSecond.toInt(&ok);
    int result = number1 + number2;

    QString strResult;
    strResult = strResult.number(result);
    lineoutput->display(strResult);
}

//function to subtract the two numbers

void Calculator::subtraction()
{
        QString strFisrt = int1Entry->text();
        QString strSecond = int2Entry->text();

        bool ok;
        int number1 = strFisrt.toInt(&ok);
        int number2 = strSecond.toInt(&ok);
        int result = number1 - number2;

        QString strResult;
        strResult = strResult.number(result);
        lineoutput->display(strResult);
}

//function to multiply the two numbers

void Calculator::multiply()
{
    QString strFisrt = int1Entry->text();
    QString strSecond = int2Entry->text();

        bool ok;
        int number1 = strFisrt.toInt(&ok);
        int number2 = strSecond.toInt(&ok);
        int result = number1 * number2;

        QString strResult;
        strResult = strResult.number(result);
        lineoutput->display(strResult);
}

//function to divide the two numbers

void Calculator::division()
{
    QString strFisrt = int1Entry->text();
    QString strSecond = int2Entry->text();

        bool ok;
        int i = strSecond.toInt(&ok);
          if (i == 0) {
            error = new QErrorMessage(this);
            error->showMessage("Attempt to divide by Zero!");
          }
          else {
            int number1 = strFisrt.toInt(&ok);
            int number2 = strSecond.toInt(&ok);
            int result = number1 / number2;

            QString strResult;
            strResult = strResult.number(result);
            lineoutput->display(result);
         }
          if ((i) > 8 ) {
          error = new QErrorMessage(this);
          error->showMessage("number too large to be displayed correctly");
         }
      }

//clear widgets

void Calculator::clearFields(){

    int1Entry->clear();
    int2Entry->clear();
    lineoutput->display(0);
}


//close window
void Calculator::close(){

    exit(0);
}

main.cpp

#include <QApplication>
#include "calculator.h"

int main(int argc, char* argv[])
{
    QApplication app(argc, argv);
    Calculator w;
    w.show();

    return app.exec();
}

I need to output an error message if there is an overflow in the number of digits displayed for the result. What does this mean?

Salem commented: It's dissapointing that you've been here so long and still can't use the damn code tags! -4

I think it means that you should make an error message to be displayed (possibly in a message box) whenever the user tries to write a value that is larger (or longer) that the value that is permitted to be entered. Probably your program only allows numbers up to 8-digits, and a user tries to enter a 9-digit number. Your program will then display the error message such that the 9th digit entered by the user is not entered and the user is informed of the limitations of the program.

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.