Qt计算器开发(三):执行效果及项目总结
执行效果
project文件夹
Counter
|--- Counter.pro
|--- 头文件
| |--- aboutdialog.h
| `--- mainwindow.h
|--- 源文件
| |--- aboutdialog.cpp
| |--- main.cpp
| `--- mainwindow.cpp
`--- UI文件
|--- aboutdialog.ui
`--- mainwindow.ui
总结
项目
这个project的Ui部分我是直接使用Qt designer拖出来的。不不过由于方便啦,更重要的是这个一个非常好的MVC思想的运用。就像Android里面用xml和java分别写界面和逻辑一样。当我们改变界面的时候。背后的实现逻辑无需改动,而当我们改动实现逻辑的时候,界面又不会受到干扰。上面的project文件夹里面的aboutdialog.h和aboutdialog.cpp一句aboutdialog.ui就是一个“关于”的对话框,效果也在上面截图给出啦。没什么复杂的地方。能够使用Qt的富文本来实现里面的文字图片展示。
吐槽
这是一个入门级的Qt计算器的开发过程。在这个项目開始之前。我对Qt语法了解不多,開始去做这个浏览器全然是为了实战数据结构中的后缀表达式算法。
从电工实习那周開始吧,反正那时闲着也是闲着。就開始做了这个计算器。大概两周多一点的时间。眼下已知的bug所有修复了。
。未知的bug等待时间检验吧。。
在Windows和Ubuntu上都有敲过这个project的代码,毕竟GitHub是个强大的东西,在两个系统里面做同一个project也不难,只需git push。git pull 就能够了。
计算器本身呢,还有非常多可扩展的地方。比方日期加减,进制转换,货币转换等等。不过,总之呢。应该告一段落了。
通过这个实践能够非常清楚地得出一个结论:界面绝不是最重要的,界面非常easy做出来,有问题百度一下,分分钟也能解决。重要的是什么?算法。这是对栈和后缀表达式的一个实战。难点就在这个算法上。眼下小数点后面位数或者说精度有限。假设要实现小数点后面很多其它位数的计算结果,那么又会涉及到高精度的算法。没错,还是算法。毕竟C++没有Java那种“大数类”。
这个是使用的C++的Qt框架编的。毕竟Qt跨平台,Linux。Windows都能用。
还有一个著名的C++的GUI框架MFC。我并不喜欢。
MFC是微软做的,也是我们下学期Windows程序设计这门选修课要教的东西。因此我没有选Windows这门选修课。我并非为了混学分而选课的人。。
时间宝贵,怎能浪费。。
个人感觉:MFC太复杂,尽管是C++,但面向过程的东西太多,太多结构体,还有太多微软自己定义的宏。
并且类名,宏名的都是非常长的名字。并且不是可读性强的名称,记起来和敲起来都甚为不便。还有MFC的设计哲学,并不会是开发人员对面向对象的概念有多大提高。
而是让开发人员纠结在非常多细枝末节上。。毕竟MFC在90年代初期就出现了,那时候C++标准还未成熟,面向对象、软件project的理论也不成熟。并且那时候设计模式的理论貌似还未提出或者刚刚提出。所以导致了MFC的先天畸形。所以进入两千年后,微软对MFC的更新放慢了。后来干脆就主推C#的winform、WPF了。
================= 本 项 目 文 章 及 源 码 链 接===============
|== Qt计算器开发(一):后缀表达式实现完整数学表达式的计算 ==|
|== Qt计算器开发(二):信号槽实现数学表达式合法性检查 ==|
|== Qt计算器开发(三):执行效果及项目总结 ==|
|== Qt计算器源代码下载(免积分) ==|
|== Qt计算器GitHub托管地址(代码会不定期更新,敬请关注) ==|
=======================================================
Qt计算器开发(三):执行效果及项目总结的更多相关文章
- Qt计算器开发(二):信号槽实现数学表达式合法性检查
表达式的合法性 由于我们的计算器不是单步计算的,所以我们能够一次性输入一个长表达式.然而假设用户输入的长表达式不合法的话,那么就会引发灾难.所以有必要对于用户的输入做一个限制. 一些限制举例: 比方, ...
- Qt+ECharts开发笔记(三):ECharts的柱状图介绍、基础使用和Qt封装Demo
前言 上一篇成功是EChart随着Qt窗口变化而变化,本篇将开始正式介绍柱状图介绍.基础使用,并将其封装一层Qt. 本篇的demo实现了隐藏js代码的方式,实现了一个条形图的基本交互方式,即Qt ...
- Maven学习总结(三)——使用Maven构建项目
maven作为一个高度自动化构建工具,本身提供了构建项目的功能,下面就来体验一下使用maven构建项目的过程. 一.构建Java项目 1.1.创建Java Project 1.使用mvn archet ...
- 转】Maven学习总结(三)——使用Maven构建项目
原博文出自于: http://www.cnblogs.com/xdp-gacl/p/4240930.html 感谢! maven作为一个高度自动化构建工具,本身提供了构建项目的功能,下面就来体验一下使 ...
- (转)Maven学习总结(三)——使用Maven构建项目
孤傲苍狼 只为成功找方法,不为失败找借口! Maven学习总结(三)——使用Maven构建项目 maven作为一个高度自动化构建工具,本身提供了构建项目的功能,下面就来体验一下使用maven构建项目的 ...
- 第一次使用Android Studio时你应该知道的一切配置(三):gradle项目构建
[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/ ...
- iOS开发--iOS及Mac开源项目和学习资料
文/零距离仰望星空(简书作者)原文链接:http://www.jianshu.com/p/f6cdbc8192ba著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”. 原文出处:codecl ...
- 【转】第一次使用Android Studio时你应该知道的一切配置(三):gradle项目构建
原文网址:http://www.cnblogs.com/smyhvae/p/4456420.html [声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.c ...
- QT +go 开发 GUI程序
,转载 https://blog.csdn.net/lanbery/article/details/81745611 如果你是一个墨守成规的coding,请移步其他内容,这部分内容可能不适合你.如 ...
随机推荐
- thinkphp3.2 实现留言功能
写一个例子说明一下: 前端:http://www.mmkb.com/zhendao/index/feedback.html <form method="post" actio ...
- 【node.js】】MSBUILD : error MSB3428: 未能加载 Visual C++ 组件“VCBuild.exe”。
错误原因:缺少windows构建插件 解决方法: # (全局安装windows构建工具) npm install --global --production windows-build-tools
- Oracle 12C 创建用户连接pdb
测试环境: C:\ora12c\product\12.1.0\dbhome_1\BIN>sqlplus.exe /nolog SQL*Plus: Release 12.1.0.1.0 Produ ...
- [原]F5负载均衡激活license
一.pc用网线连接上f5的管理口,开机,ping 192.168.1.245 二.用浏览器登录:https://192.168.1.245 用户名 admin 密码 admin
- [转载]几个有趣的Linux命令
本文给大家介绍几个有趣的Linux命令. 1. pv 命令 有时候我们在电影屏幕上看到一些字幕一个个匀速显示出来,像有人在边敲键盘,边显示一样.Linux上的pv命令可以实现这种效果. 默认情况下 ...
- 【黑金原创教程】【FPGA那些事儿-驱动篇I 】实验七:PS/2模块① — 键盘
实验七:PS/2模块① — 键盘 实验七依然也是熟烂的PS/2键盘.相较<建模篇>的PS/2键盘实验,实验七实除了实现基本的驱动以外,我们还要深入解PS/2时序,还有PS/2键盘的行为.不 ...
- win7下桌面右键一直转圈圈的解决方法
今天公司同事的电脑,在进入win7系统后,桌面右键一直转圈圈,找我解决这个问题. 经过我观察,他电脑只是在桌面上右键有此现象,在其他地方并无此现象. 因此可以得出结论,此现象很可能与桌面右键有关,经上 ...
- ios三张图片组合一张
- (UIImage *)addImage:(UIImage *)image1 toImage:(UIImage *)image2 { UIGraphicsBeginImageContext(imag ...
- Pyqt中富文本编辑器
对于文本编辑,qt提供了很多控件 QLineEdit:单行文本输入,比如用户名密码等简单的较短的或者具有单一特征的字符串内容输入.使用text.settext读写 QTextEdit:富文本编辑器,支 ...
- Mysql: mysqlbinlog命令查看日志文件
想查看mysql的binlog文件,但是裸的binlog文件是无法直视的,mysqlbinlog这个工具是用来查看binlog文件内容的(使用方式man mysqlbinlog查看),但是使用mysq ...