自带的计算器制作的简化版本,是用Qt做的,直接把整个表达式输入然后得出计算结果。
输入标题,两个QPushButton表示最小化与关闭,同时加入两个Spacer,让标题与左边空出一些距离。其实就是模仿

这里就不做最大化了。因为涉及到按钮的重新排布问题,这个可以自己选择实现。
判断是否是左键,是的话获取mouse坐标,再设置窗口坐标。当触发第二个函数时,即先判断是否按住左键不放,使用
获取坐标后减去原来光标的坐标得到窗口坐标的变化量,再用原坐标加上这个变化量。4.1.1.2 最小化与关闭这里以最小化为例,关闭也一样的,改一下函数调用即可。
呃....这里可能是截图工具的问题,看不出来有多大的效果,但是直接在机器上看是有比较大的区别的,建议还是加上阴影。


然后添加处理函数,这里实现了一个添加文本与清除焦点的函数,添加文本就是对应按键被光标单击后添加到输出框。单击后会把焦点保留在这个按钮上,键盘上敲空格默认会帮你按一次这个按钮,因此如果不清除焦点的话,在光标单击了某个按钮,比如7,按空格就会在输出框上输出7,光标单击了8后,按空格就会在输出框上输出8。
前调用fadeOut()函数,因为动画会在另一个线程启动,所以需要在主线程休眠指定秒数,等待淡出效果完成后,主线)。

void MainWindow::fadeOut(void) { QPropertyAnimation * changeOpacity = new QPropertyAnimation(this,windowOpacity); changeOpacity-setStartValue(0.9); changeOpacity-setEndValue(0); changeOpacity-setDuration(2500); changeOpacity-start(); QTime start = QTime::currentTime().addMSecs(2500); while(QTime::currentTime() start) QCoreApplication::processEvents(QEventLoop::AllEvents, 100); }

-与+,因为有(-7) (+234)这种情况。然后把这个符号保存下来判断后面是否是对应的右括号。
private封装了一些简单的对两个栈进行操作的工具方法,公有的pop()与get()是对运算符栈进行的操作.因为外部不需要对操作数栈进行操作,由calculate()进行操作,公有的push重载了,可以push到操作数栈或运算符栈.

6.6/{2.3+34.3*2.22-5%2+22%4*[2+3.4/5-(4.3+3.2*33.3)]+34.3} + 7.8*{2.4-6/6+0-0*[23.4-3.4/6+4*(2.2+3)]}+0 - 0 + 0.0 = 10.8569 3.4 - (+3.34) + 34.3 * (-2) / 3.34 + {[(-3.4)^2/3.4+3.4/3]-3.32+[3*(-3)]} = -28.2656 9^5-34.4^2.3+5%6-34+66%78-78%4 + (-3)*3.4 / {3*(-7)+[3*(-8)+3*(3.4+4.34)/9.3-3.2 + 0.0 - 0]+0.0 - 0}+3.4^4/6.888 = 55683.2


使用execute执行,表达式先去除所有的空格,然后作为命令行参数传递给计算程序,然后计算程序把计算结果写入到

对于结果因为在计算程序中设置了fixed格式,因此对于1+2也会返回3.000000


fixed格式,否则的话显示的是pg电子科学计数法,对小数位数有要求的话可以设置setprecision
7.2.3 错误提示这里出现错误时,输出#,然后主程序读取到就会提示表达式错误,请重新输入。。
可以考虑把错误处理整合过来,比如输入了一个点,不能继续输入点,输入了一个乘号或者除号不能再继续输入另一个符号:
的exe,第二个选择打包之后的文件夹,然后选择添加文件,选择递归添加,添加上一步生成的所有文件(夹)。
Copyright © 2026 pg电子模拟器股份有限公司 版权所有