1、预习内容:
环境搭建
配置外部工具
PyUIC
程序:python.exe
工作目录:当前项目所在路径
实参:
-m PyQt5.uic.pyuic $FileName$ -o $FileNameWithoutExtension$.py
QTdesigner
程序:qt目录下的designer.exe
从pycharm打开QT Designer
修改每个组件的名称
在编辑好UI界面后,将.ui文件用之前导入的外部工具PyUIC重编译为.py文件
得到ui的.py文件后,UI搭建和环境部分基本结束
2、项目分析
普通计算器项目的要求较为简单,但是需要有可视化的图像界面,即整体需要有和用户的交互能力。因此,输入输出算式时要有所体现,比如给出文本框进行 显示算式及结果,给出按钮进行点击输入。同时,要求能保存运算的 历史记录,除了求解普通的加减乘除表达式以外,还需要能正确识别 带括号的运算优先级。
3、实验目标
1.能通过设计的按钮控件输入并实现简单算数运算,要求表达式在编辑框中显示,能运算结果,输出在编辑框内显示;
2.能实现混合运算的求解,算术表达式中包括加,减,乘,除,括号等运算;并能够识别括号;
相关参考
用PyQt5开发一个简易的计算器_数学工具构造器的博客-CSDN博客https://blog.csdn.net/TQCAI666/article/details/80532034?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-3.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-3.nonecase
三.页面设计
页面组成
①字符串输入文本框 e_view ,设置中可配置为可使用键盘输入
②历史记录文本框 l_hist
③多个提供操作按钮以及数字按钮
页面功能:
对鼠标点击按钮进行响应,当鼠标点击“=”时进行函数调用以及计算,并且在历史记录文本框显示对应的运算记录。
法分析
1.eval()函数
初期直接调用了py自带的eval()运算函
2. 中缀转后缀表达式
通过栈辅助,将符号和数字进行不同操作
方法:
(1)遇到操作数:直接输出(添加到后缀表达式中)
(2)栈为空时,遇到运算符,直接入栈
(3)遇到左括号:将其入栈
(4)遇到右括号:执行出栈操作,并将出栈的元素输出,直到弹出栈的是左括号,左括号不输出。
(5&