Vs+Qt简单计算器设计流程(含运行截图)

实验步骤

基于Qt简单计算器设计流程可参考如下步骤

文章目录

  • 基于Qt简单计算器设计流程可参考如下步骤
    • 1. 新建Qt工程
    • 2. 创建界面
    • 3. 编写按钮代码
    • 4. 表达式解析和结果计算
    • 5. 编译运行结果

1. 新建Qt工程

① 选择“创建新项目”→“Qt Widgets Application”→“下一步”如下图所示
Vs+Qt简单计算器设计流程(含运行截图)_第1张图片

② 重命名项目名称为Calculator
③ 选择项目位置
Vs+Qt简单计算器设计流程(含运行截图)_第2张图片

④ 进入Qt应用程序向导,一路点击“next”
Vs+Qt简单计算器设计流程(含运行截图)_第3张图片

⑤ 一路next到这步,Base class可以选择QMainWindow或QWidget,要是将来需要菜单栏等组件的话选mainwindow;选好之后点击“next”
Vs+Qt简单计算器设计流程(含运行截图)_第4张图片

⑥ 项目创建完成,代码资源如下,直接运行可以产生一个空白的QWidget窗口
Vs+Qt简单计算器设计流程(含运行截图)_第5张图片

2. 创建界面

此次设计的计算器,主要由按钮和显示框组成。包括“0-9”的数字按钮,运算符“/”“*”“-”“+”,小数点按钮,求值按钮,清零按钮,左右括号()按钮,以及回退按钮。具体设计流程如下。
① 双击前面图中的calculator.ui文件,弹出Qt Designer。
Vs+Qt简单计算器设计流程(含运行截图)_第6张图片

② 按住PushButton 和LineEdit拖到右边的设计区域,就添加成功了,多次添加;
Vs+Qt简单计算器设计流程(含运行截图)_第7张图片
Vs+Qt简单计算器设计流程(含运行截图)_第8张图片

③ 选择主界面,点击上面的九宫格布局;
Vs+Qt简单计算器设计流程(含运行截图)_第9张图片

④ 点击LineEdit控件,点开sizePolicy选项,将水平策略和垂直策略同时更改为Preferred;
Vs+Qt简单计算器设计流程(含运行截图)_第10张图片

⑤ 添加其余的19个按钮,并放在合适位置,将lineEdit控件拉倒右边界,并调整主界面大小;
Vs+Qt简单计算器设计流程(含运行截图)_第11张图片

⑥ 选中全部按钮,按照第④步的方法调整垂直布局策略,并修改每个按钮名字;
Vs+Qt简单计算器设计流程(含运行截图)_第12张图片

⑦ 点击编辑信息与槽按钮;

Vs+Qt简单计算器设计流程(含运行截图)_第13张图片

⑧ 鼠标长按按钮“1”,拖往边上没有控件的空白地方松开,在弹出的界面中,选中左边的clicked()信号,之后在右边点击的编辑按钮进入槽函数编辑界面;
Vs+Qt简单计算器设计流程(含运行截图)_第14张图片

⑨ 点击槽的加号按钮,添加一个numbuttonPress()的槽函数,点击OK
Vs+Qt简单计算器设计流程(含运行截图)_第15张图片

⑩ 再次回到配置连接界面,选中刚刚增加的numbuttonPress()槽函数,点击OK,就将“1”按钮的clicked()信号和numbuttonPress()槽函数映射起来。
Vs+Qt简单计算器设计流程(含运行截图)_第16张图片

⑪ 重复第⑧个步骤,除去“=”号键、“清屏”键和“后退”键,将其余按键的clicked()信号与numbuttonPress()槽函数映射起来;
Vs+Qt简单计算器设计流程(含运行截图)_第17张图片

⑫ 重复第⑧个步骤,新增三个槽函数eqlbtnPress();clearPress();backPress();将“=”号键的clicked()信号与eqlbtnPress()槽函数映射;将“清屏”键的clicked()信号与clearPress()槽函数映射;将“后退”键的clicked()信号与backPress()槽函数映射;
Vs+Qt简单计算器设计流程(含运行截图)_第18张图片

3. 编写按钮代码

① 为了实现刚刚创建的槽函数,首先在Calculator.h文件中新增private slots:在里面声明添加的四个函数成员eqlbtnPress();clearPress();backPress();numbuttonPress();
Vs+Qt简单计算器设计流程(含运行截图)_第19张图片

② 实现numbuttonPress()函数;
Vs+Qt简单计算器设计流程(含运行截图)_第20张图片

③ 实现clearPress(函数);
Vs+Qt简单计算器设计流程(含运行截图)_第21张图片

④ 实现backPress()函数;
Vs+Qt简单计算器设计流程(含运行截图)_第22张图片

⑤ 实现eqlbtnPress()函数,使用solve函数获取表达式的值;
Vs+Qt简单计算器设计流程(含运行截图)_第23张图片

4. 表达式解析和结果计算

当输入表达式完成之后,需要对lineEdit中的表达式进行解析,计算出表达式对应值,可以参考实验指导书上的计算原理及代码,也可使用本文中的算法。本文使用一个solve函数来解析表达式,计算出相应的结果,并显示到结果框中去,具体代码如下:
① Include相关头文件
Vs+Qt简单计算器设计流程(含运行截图)_第24张图片

② 字符串预处理,这里主要是处理类似 -2+3,1+(-3+2)这类负数问题
Vs+Qt简单计算器设计流程(含运行截图)_第25张图片

③ 确定操作符优先级
Vs+Qt简单计算器设计流程(含运行截图)_第26张图片

④ 中缀表达式转后缀表达式
Vs+Qt简单计算器设计流程(含运行截图)_第27张图片
Vs+Qt简单计算器设计流程(含运行截图)_第28张图片
Vs+Qt简单计算器设计流程(含运行截图)_第29张图片

⑤ 计算后缀表达式

Vs+Qt简单计算器设计流程(含运行截图)_第30张图片
Vs+Qt简单计算器设计流程(含运行截图)_第31张图片

⑥ 实现solve函数
Vs+Qt简单计算器设计流程(含运行截图)_第32张图片

5. 编译运行结果

Vs+Qt简单计算器设计流程(含运行截图)_第33张图片
Vs+Qt简单计算器设计流程(含运行截图)_第34张图片
Vs+Qt简单计算器设计流程(含运行截图)_第35张图片
Vs+Qt简单计算器设计流程(含运行截图)_第36张图片

也可以回到ui文件改变字体;

你可能感兴趣的:(C++,Qt,qt,ui,开发语言)