《面向对象程序设计》第六次作业(图形化界面)

作业要求:

  • 实现计算器GUI界面
  • 接收数字键、括号和加减乘除按键并处理计算
  • 支持文件输入输出批量处理
  • 除按钮监听处理外能接收按键信号

因为选择的是Qt,然后写c++项目惯用的IDE是eclipse,所以开始的时候在给eclipse安装Qt插件的时候颇费了一番周折耽误了很多时间(详见上一篇博客_(:зゝ∠)_),然而eclipse的Qt插件真!的!非!常!难!用!!要写Qt推荐还是稳妥的上qt creator讲真,讲真,讲真。(Xзゝ∠)_流下泪来的教训。

代码已上传
—————————————————————————————————————————————————

项目分析(x:

GUI界面展示:

主窗口MainWindow实现基本GUI进行监听操作。

开始菜单下弹窗实现文件读取。

关于菜单埋了个逗比弹窗彩蛋自娱自乐(:зゝ∠)

(另外在进入此应用程序时,状态栏有3s的延迟显示welcome欢迎字样继续自娱自乐(:зゝ∠))
(更多彩蛋欢迎探索(:зゝ∠))

功能实现:
1.三个.ui文件分别是主窗口MainWindow、菜单栏“关于”dialog弹窗、菜单栏“开始->文件输入”fileio弹窗
2.主窗口按键20个实现按钮事件。“C”键清空全部,退格键删除最后一位输入,“=”键计算当前输入表达式,其余都为表达式输入在显示栏上。
3.键盘事件包括esc键清空全部、backspace退格、enter计算表达式以及数字和运算符按键的表达式输入。
4.fileio窗体中的“...”工具按钮实现文件浏览框的弹出和选择。
5.为了计算器相对合理的UI界面去掉了普通窗体的缩放功能,即不能最大最小化和拖动边框大小。

(代码太长就不贴了)
在本次项目中学会了基本的Qt语法以及信号和槽的实现,了解了基本的GUI操作界面(把Qt的GUI控件几乎都拖出来玩了一遍233)

参考资料:
Qt 编程指南(非常全非常良心的一版教程真心荐)

—————————————————————————————————————————————————
对于整个项目的一些疑问
写到第五次作业的时候,我是真的非常想弃疗的_(:зゝ∠)不懂是我脑回路的问题还是怎么着,为了实现规定的函数(函数参数固定,返回值固定),把代码越写越乱,乱到能被自己的main函数恶心到(:зゝ∠)也许助教学长的本意是为了给一个清晰易懂的代码思路,但是可能是代码习惯不一样吧,反正总觉得写的不顺(:зゝ∠)比如一个非要返回queue的函数明明可以写成void然后直接在这个函数内调用另一个对象的成员函数,然后甚至在构造函数就可以调用这个函数。这样在原本在main里定义两个类对象,然后调用好几个函数的好几句代码,就可以简化成甚至只要new出一个对象来这样一句话就够(只是个比方具体是哪步一下也想不起来)。第四次作业完成的时候我的代码还是能正确计算出橘犇犇博客欢乐的评论区下第一反人类表达式的好游戏机,到了第五次把东西加的真的乱,到最后学长把跑崩的表达式给我也没有了当时整一个下午兴致勃勃的和eclipseDebug玩耍的劲(奇怪明明比那个还复杂的表达式在第四次作业的时候测的多了呀为撒第五次我也没有改动计算的代码居然会跑崩)。很想重构但目前还没那个勇气和耐心,也没有信心不确定能不能比现在的样子做得好。
对于那个无语凝噎的框架图,看到那个作业要求的时候我是懵逼的。正在和自己丑陋的main函数大眼瞪小眼的怀疑人生的时候缩要画框架图?(为什么不是在项目开头告知这整个项目要实现的要求是哪些然后自己先大致有个框架,而是在写了大半之后缩就按照现在这样的代码来搭框架图?)当然这更该怪我自己代码的可维护性太低,措手不及加需求的时候真的很头大_(:зゝ∠)
至于这次的GUI界面,短时间内能做完我还是很开心的,虽然还是有一些七七八八的错和挺多不满意的地方(整整两天搭建环境,搭崩了数次到最后搭好了发现雾草为什么这么难用!!!转而去搭另一个IDE简直是要眼泪掉下来),但是真的真的是破费了一番周折所以难免质疑一下所做的意义(整个时间期限内,3/5的时间是没空的,剩下的3/4的时间在搭环境,最后1/4也就是全部的1/10的时间在学习Qt和实现代码)(:зゝ∠)找教程和找资料的打开方式还是很有问题,以及市面上的教程老旧的太多,完整而清晰的太少,教程看着是很简单的样子,但是很多很多的error只有在自己着手去搭的时候全部暴露,有的error是翻遍了stackoverflow能找到的都是一种error名字一样具体提示不一样的尴尬情况,曾经以为搭eclipse的IDE已经是极限了,然而万万没想到为了搭个Qt环境磨到耐心值+10086这一波我给满分(:зゝ∠)(eclipse for c++给0分)
以及真的挺感谢西瓜学长的,在完成这次项目过程中给我很多帮助QUQ(虽然比较不喜欢随随便便拿着error去麻烦人但是在查了一打资料之后有时候还是只能泰勒懵逼展开脸.jpg求助学长quq)讲真不敢想象每次作业的批改工作量,况且难说不是阅读性十分不友好的代码(抱头),看到评论区十几行的点评真的挺感动的,每一份作业如果都这么认真的点评反正我自己肯定是没有那个耐心嗯(:зゝ∠)
这个小项目虽然不是写的第一个项目,但是其实算是很完整的从无到有的一次经历吧,没有跑没有飞就踏踏实实的踩下几个很是丑陋的脚印,留着代码和博客等以后回来看黑历史嗯。

posted @ 2016-06-05 09:59  thousfeet  阅读(434)  评论(4编辑  收藏  举报
/* */