gpt4 book ai didi

QT4中的C++简单计算器

转载 作者:行者123 更新时间:2023-11-28 01:04:57 26 4
gpt4 key购买 nike

我正在尝试在 QT4 中创建一个简单的计算器。用户输入 2 个数字,然后有 4 个用于计算的命令按钮。 (+ - */)。我的代码是:

计算器.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

计算器.cpp

#include "Calculator.h"

//constructor

Calculator::Calculator() {

//{initializes and places widgets using a layout

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, 2,1);
layout->addWidget(int2Entry, 3,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,0);
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 number1 = strFisrt.toInt(&ok);
int number2 = strSecond.toInt(&ok);
int result = number1 / number2;

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

//clear widgets

void Calculator::clearFields(){

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

//close window

void Calculator::close(){

exit(0);
}

主要.cpp

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

int main(int argc, char* argv[])

{

QApplication app(argc, argv);
Calculator w;
w.show();
return app.exec();
}

当我运行这个程序时,我得到一个空白的 Ms-Dos 黑屏。你能帮帮我吗?

最佳答案

问题是您永远不会创建以下项目的实例:

QLineEdit* int1Entry;
QLineEdit* int2Entry;

将以下内容添加到构造函数的开头:

int1Entry = new QLineEdit;
int2Entry = new QLineEdit;

您永远不会将 QErrorMessage 的实例分配给 error,但您也不会使用它,所以以后要小心。

关于QT4中的C++简单计算器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6769526/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com