zoukankan      html  css  js  c++  java
  • Qt计算器开发(三):执行效果及项目总结

    版权声明:本文为博主原创文章,未经博主同意不得转载。 https://blog.csdn.net/guodongxiaren/article/details/26046543

    执行效果


    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托管地址(代码会不定期更新,敬请关注)        ==|
    =======================================================


  • 相关阅读:
    数据结构-树与二叉树-思维导图
    The last packet successfully received from the server was 2,272 milliseconds ago. The last packet sent successfully to the server was 2,258 milliseconds ago.
    idea连接mysql报错Server returns invalid timezone. Go to 'Advanced' tab and set 'serverTimezone' property
    redis学习笔记
    AJAX校验注册用户名是否存在
    AJAX学习笔记
    JSON学习笔记
    JQuery基础知识学习笔记
    Filter、Listener学习笔记
    三层架构学习笔记
  • 原文地址:https://www.cnblogs.com/ldxsuanfa/p/9928436.html
Copyright © 2011-2022 走看看