easycalculator.cpp

来自「简单计算器,基于Qt平台实现,有基本的数学运算功能.」· C++ 代码 · 共 91 行

CPP
91
字号
#include <QApplication>#include <QLineEdit>#include <QComboBox>#include <QStringList>#include <QLabel>#include <QPushButton>#include <QHBoxLayout>#include <QVBoxLayout>#include <QDoubleValidator>#include "easycalculator.h"EasyCalculator::EasyCalculator(QWidget *parent) : QDialog(parent){	QDoubleValidator *validator = new QDoubleValidator(this); 	firstNumberEdit = new QLineEdit(tr("0"), this);	firstNumberEdit->setValidator(validator);	connect(firstNumberEdit, SIGNAL(textChanged(const QString &)), this, SLOT(calculate()));	secondNumberEdit = new QLineEdit(tr("0"), this);	secondNumberEdit->setValidator(validator);	connect(secondNumberEdit, SIGNAL(textChanged(const QString &)), this, SLOT(calculate()));	resultEdit = new QLineEdit(tr("0"), this);	resultEdit->setReadOnly(true);		QStringList signList;	signList << tr("+") << tr("-") << tr("*") << tr("/");		signCombo = new QComboBox(this);	//signCombo->addItem(tr("+"));	//signCombo->addItem(tr("-"));	//signCombo->addItem(tr("*"));	//signCombo->addItem(tr("/"));	signCombo->addItems(signList);	connect(signCombo, SIGNAL(currentIndexChanged(const QString &)), this, SLOT(calculate()));		quitButton = new QPushButton(tr("Quit"), this);	connect(quitButton, SIGNAL(clicked()), qApp, SLOT(quit()));		QHBoxLayout *topLayout = new QHBoxLayout();	topLayout->addWidget(firstNumberEdit);	topLayout->addWidget(signCombo);	topLayout->addWidget(secondNumberEdit);	topLayout->addWidget(new QLabel(tr("=")));	topLayout->addWidget(resultEdit);		QVBoxLayout *layout = new QVBoxLayout();	layout->addLayout(topLayout);	layout->addWidget(quitButton);		setLayout(layout);}void EasyCalculator::calculate(){	double first;	double second;	double result;	QString firstString;	QString secondString;	QString resultString;		firstString = firstNumberEdit->text();	secondString = secondNumberEdit->text();		first = firstString.toDouble();	second = secondString.toDouble();		switch (signCombo->currentIndex())	{		case 0:			result = first + second;			break;		case 1:			result = first - second;			break;		case 2:			result = first * second;			break;		case 3:			result = first / second;			break;		default:			result = 0;			break;	}		resultString.setNum(result, 'f', 3);		resultEdit->setText(resultString);}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?