資源簡介
用QT實現的簡單計算器,包含加減乘除、開方、平方、求導、記憶等功能。
代碼片段和文件信息
#include?“calculatorstandard.h“
#include?“ui_calculatorstandard.h“
CalculatorStandard::CalculatorStandard(QWidget?*parent)?:
????QMainWindow(parent)
????ui(new?Ui::CalculatorStandard)
{
????ui->setupUi(this);
????waitingForOperand?=?true;
????//0-9數字按鍵
????connect(ui->pushButton_ZeroSIGNAL(clicked())thisSLOT(digitClicked()));
????connect(ui->pushButton_OneSIGNAL(clicked())thisSLOT(digitClicked()));
????connect(ui->pushButton_TwoSIGNAL(clicked())thisSLOT(digitClicked()));
????connect(ui->pushButton_ThreeSIGNAL(clicked())thisSLOT(digitClicked()));
????connect(ui->pushButton_FourSIGNAL(clicked())thisSLOT(digitClicked()));
????connect(ui->pushButton_FiveSIGNAL(clicked())thisSLOT(digitClicked()));
????connect(ui->pushButton_SixSIGNAL(clicked())thisSLOT(digitClicked()));
????connect(ui->pushButton_SevenSIGNAL(clicked())thisSLOT(digitClicked()));
????connect(ui->pushButton_EightSIGNAL(clicked())thisSLOT(digitClicked()));
????connect(ui->pushButton_NineSIGNAL(clicked())thisSLOT(digitClicked()));
????//加減按鍵
????connect(ui->pushButton_AddSIGNAL(clicked())thisSLOT(addAndSubClicked()));
????connect(ui->pushButton_SubSIGNAL(clicked())thisSLOT(addAndSubClicked()));
????//乘除按鍵
????connect(ui->pushButton_MulSIGNAL(clicked())thisSLOT(MulAndDerivativeClicked()));
????connect(ui->pushButton_DivSIGNAL(clicked())thisSLOT(MulAndDerivativeClicked()));
????//等于號按鍵
????connect(ui->pushButton_EqualSIGNAL(clicked())thisSLOT(EqualClicked()));
????//清除按鍵
????connect(ui->pushButton_ClearSIGNAL(clicked())thisSLOT(clear()));
????connect(ui->pushButton_ClearAllSIGNAL(clicked())thisSLOT(clearAll()));
????//空格按鍵
????connect(ui->pushButton_BackspaceSIGNAL(clicked())thisSLOT(backspaceClicked()));
????//小數點按鍵
????connect(ui->pushButton_PointSIGNAL(clicked())thisSLOT(pointClicked()));
????//MC?MR?MS?M+按鍵
????connect(ui->pushButton_MCSIGNAL(clicked())thisSLOT(MCclicked()));
????connect(ui->pushButton_MRSIGNAL(clicked())thisSLOT(MRclicked()));
????connect(ui->pushButton_MSSIGNAL(clicked())thisSLOT(MPlusclicked()));
????//正負切換按鍵
????connect(ui->pushButton_PlusminusSIGNAL(clicked())thisSLOT(plusMinusClicked()));
????//開方,平方,求導
????connect(ui->pushButton_DerivativeSIGNAL(clicked())thisSLOT(otherOperatorclicked()));
????connect(ui->pushButton_SqrtSIGNAL(clicked())thisSLOT(otherOperatorclicked()));
????connect(ui->pushButton_X_2SIGNAL(clicked())thisSLOT(otherOperatorclicked()));
}
CalculatorStandard::~CalculatorStandard()
{
????delete?ui;
}
void?CalculatorStandard::digitClicked?()
{
????//當某一個object?emit一個signal的時候,它就是一個sender系統會記錄下當前是誰emit出這個signal的,
????//所以你在對應的slot里就可以通過?sender()得到當前是誰invoke了你的slot,對應的是Qobject->d->sender.
????//有可能多個?object的signal會連接到同一個signal(例如多個Button可能會connect到一個slot函數onclick())
????//因此這是就?需要判斷到底是哪個object?emit了這個signal,根據sender的不同來進行不同的處理.
????QPushButton?*clickedButton?=?qobject_cast(sender());
????//int?digitValue?=?clickedButton->text().toInt();
????//qDebug()<
評論
共有 條評論