图6
4) 添加文件calculator.h
在工程Calculator上面点击右键,然后点击Add New,选择添加C++ Header File(如图7所示),进入下一步后输入文件名calculator.h(如图8所示),然后完成文件的添加。
图7
图8
5) 添加文件calculator.cpp和main.cpp
与添加文件calculator.h的过程类似,只是在选择文件类型时选择为C++ Source File。完成后可以查看Calculator.pro文件的内容,整个工程的文件结构如图9所示。
图9
3. 计算器程序源代码的分析说明
1) 对calculator.h源代码的简要说明
#ifndef CALCULATOR_H
#define CALCULATOR_H //对calculator.h头文件的声明 #include
#include
class Calculator : publicQWidget//计算器继承自主窗体类 {
Q_OBJECT //必须加上这句,如果要调用信号,槽函数的操作的话 public:
Calculator(); //计算器类的构造函数 ~Calculator(); //计算器类的析构函数
public slots: //定义各个按键按下后对应操作处理的槽函数 voidzeroButtonPress(); voidoneButtonPress(); voidtwoButtonPress(); voidthreeButtonPress(); voidfourButtonPress(); voidfiveButtonPress(); voidsixButtonPress(); voidsevenButtonPress(); voideightButtonPress(); voidnineButtonPress(); voidaddButtonPress(); voidsubButtonPress(); voidmulButtonPress(); voiddivButtonPress(); voidclearButtonPress(); voidequButtonPress();
private:
QLineEdit *operateEdit;//声明显示框
QPushButton *zeroButton;//声明数字按键1 QPushButton *oneButton; QPushButton *twoButton; QPushButton *threeButton; QPushButton *fourButton; QPushButton *fiveButton; QPushButton *sixButton; QPushButton *sevenButton; QPushButton *eightButton; QPushButton *nineButton;
QPushButton *clearButton;//声明运算符按键 QPushButton *addButton; QPushButton *subButton; QPushButton *divButton; QPushButton *mulButton; QPushButton *equButton;
QHBoxLayout *firstLayout;//声明水平布局器,该布局器主要对16个按键进行布局 QHBoxLayout *secondLayout; QHBoxLayout *thirdLayout; QHBoxLayout *fourthLayout;
QVBoxLayout *mainLayout;//声明垂直布局器,该布局器主要对主窗体上面的空间进行排布
QString input1;//计算器第一个运算操作数 QString input2;//计算器第二个运算操作数 char operate;//运算符 };
#endif// CALCULATOR_H
2) 对calculator.cpp源代码的简要说明 首先是构造函数的实现:
Calculator::Calculator() {
operateEdit = newQLineEdit(this);//初始化显示框 operateEdit->setReadOnly(true); //设置显示框为只读
operateEdit->setText(tr(\));//初始化显示框显示数据为0
zeroButton = newQPushButton;//初始化按键
zeroButton->setText(tr(\));//设置按键上显示的标签,以下对按键相关的操作类似
oneButton = newQPushButton; oneButton->setText(tr(\)); twoButton = newQPushButton; twoButton->setText(tr(\)); threeButton = newQPushButton; threeButton->setText(tr(\)); fourButton = newQPushButton; fourButton->setText(tr(\)); fiveButton = newQPushButton; fiveButton->setText(tr(\)); sixButton = newQPushButton; sixButton->setText(tr(\));
sevenButton = newQPushButton; sevenButton->setText(tr(\)); eightButton = newQPushButton; eightButton->setText(tr(\)); nineButton = newQPushButton; nineButton->setText(tr(\)); clearButton = newQPushButton; clearButton->setText(tr(\)); addButton = newQPushButton; addButton->setText(tr(\));