今天,我们尝试用Qt实现一个简易的计算器。
1、简易计算器的需求
这个简易的计算器,可以实现如下的功能:
(1)支持用户通过鼠标对计算器进行操作;
(2)支持整数的加减乘除运算;
(3)支持数据清理操作。
2、建立calculator工程
新建Qt Widgets Application,工程名为calculator,基类为QMainWindow:
工程建立后,Qt Creator中的视图为:
3、设计用户界面
在主窗口中添加16个按钮,添加后效果如下:
将主窗口的标题改为“简易计算器”,将按钮的标题改为数字和操作符号,修改后效果如下:
4科学、设置主窗口的尺寸不可改变
修改main.cpp文件,其中调用主窗口的setFixedSize函数,让窗口的尺寸固定:
#include "mainwindow.h"#include <QApplication>int main(int argc, char *argv[]){ QApplication a(argc, argv); MainWindow w; w.setFixedSize(w.width(), w.height()); w.show(); return a.exec();}
现在窗口的效果变为:
5、设置数字按键的反应
在MainWindow中添加一个成员函数,实现向行编辑框中添加数字的功能:
void MainWindow::AddNumberToOperand(int i){ QString strNumber; strNumber.setNum(i); QString strOperand = ui->editOperand->text(); strOperand.append(strNumber); ui->editOperand->setText(strOperand);}
然后,为每个数字按键添加鼠标单击的处理函数:
void MainWindow::on_b怎么uttonOne_clicked(){ AddNumberToOperand(1);}void MainWindow::on_buttonTwo_clicked(){ AddNumberToOperand(2);}void MainWindow::on_buttonThree_clicked(){ AddNumberToOperand(3);}void MainWin计算器dow::on_buttonFour_clicked(){ AddNumberToOperand(4);}void MainWindow::on_buttonFive_clicked(){ AddNumberToOperand(5);}void MainWindow::on_buttonSix_clicked(){ AddNumberToOperand(6);}void MainWindow::on_buttonSeven_clicked(){ AddNum操作berToOperand(7);}void MainWindow::on_buttonEight_clicked(){ AddNumberToOperand(8);}void MainWindow::on_buttonNine_clicked(){ AddNumberToOperand(9);}void MainWindow::on_buttonZero_clicked(){ AddNumberToOperand(0);}
现在简易计算器的效果如下:
6、定义成员变量
在MainWindow类中定义两个成员变量,表示操作数:
private: int m_iOperand1; int m_iOperand2;
在MainWindow.h中定义一个枚举类型,表示用户进行的算术操作:
enum{ OPERATOR_ADD = 0, OPERATOR_MINUS = 1, OPERATOR_MULTIPLY = 2, OPERATOR_DIVIDE = 3};
在MainWindow类中定义一个成员变量,表示算术操作:
private: int m_iOperator;
7、设置加减乘除按键的次方反应
当加减乘除任一按键被点击时,设置m_iOperand1和m_iOperator的值,代码如下:
void MainWindow::on_buttonAdd_clicked(){ m_iOperand1 = ui->editOperand->text().toInt(); m_iOperator = OPERATOR_ADD; ui->editOperand->setText("");}void MainWindow::on_buttonMinus_clicked(){ m_iOperand1 = ui->editOperand->text().toInt(); m_iOperator = OPERATOR_MINUS; ui->editOperand->setText("");}void MainWindow::on_buttonMultiply_clicked(){ m_iOperand1 = ui->editOperand->text().toInt(); m_iOperator = OPERATOR_MULTIPLY; ui->editOperand->setText("");}void MainWindow::on_buttonDivide_clicked(){ m_iOperand1 = ui->editOperand->text().toInt(); m_iOperator = OPERATOR_DIVIDE; ui->editOperand->setText("");}8、设置清除按键的反应当清除按键被点击时,将行编辑框的值清空,代码如下:void MainWindow::on_buttonClear_clicked(){ ui->editOperand->setText("");}
9、设置三次等号按键的反应
当等号按键被点击时,将执行计算操作,代码如下:
void MainWindow::on_buttonEqual_clicked(){ m_iOperand2 = ui->editOperand->text().toInt(); switch (m_iOperator) { case OPERATOR_ADD: m_iOperand1 = m_iOperand1 m_iOperand2; break; case OPERATOR_MINUS: m_iOperand1 = m_iOperand1 - m_iOperand2; break; case OPERATOR_MULTIPLY: m_iOperand1 = m_iOperand1 * m_iOperand2; break; case OPERATOR_DIVIDE: if (m_iOperand2 != 0) { m_iOperand1 = m_iOperand1 / m_iOperand2; } br开eak; } QString strNumber; strNumber.setNum(m_iOperand1); ui->editOperand->setText(strNumber);}
10、验证程序
至此,我们的简易计算器已经编写完成,下面我们进行调试。
启动程序,界面如下:
输入一个整数,例如120:
点击乘号,点击后界面如下:
再次输入一个整数,例如8:
点击等号,点击后界面如下:
通过验证,我们编写的简易计算器,可以完成简单的加减乘除运算。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至123456@qq.com 举报,一经查实,本站将立刻删除。