📄 easycalculator.cpp
字号:
#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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -