Github Python计算器开源项目 二次开发--增加函数图形
先上原项目链接:https://github.com/xhf79/Calculator_pyqt
python+Qt 开发的计算器
原项目界面和功能如图所示:

科学计算的内容基本都有,但按照项目的提示,想给函数显示图片,计算器直接退出,无任何提示。咨询无果,看源码。
在logic.py里面找到关于函数图形绘制的函数如下:

try里面根本就没有绘制图形的语句。所以基本可以确定这个功能是不存在的。再查看本项目所有.py文件,也没有引用到matlibplot.pyplt。
本人决定增加这个功能,先确定技术路线:matlibplot.pyplt + tkinter弹窗显示,因为Qt还不是很熟悉,做起来麻烦不小。
需要做的大方向:增加一个专门画图.py文件,在上述的plott函数里,增加相关语句,进行具体选择,给出具体的画图指令。
需要画图的函数有如下8个,红框5个+黄框3个:

先从sin函数开始...
一步一步尝试,做出如了这些图形:

按下Show Graph键后:

按Quit Graph键,退出画图界面,计算器还可以继续工作。比如继续画其他函数图形,或做计算。
按Exit Calculator键后,直接退出计算器程序。
其他的函数,图形如下:
cos函数:

tan函数:

ln函数:

sin-1函数:

其余不再一一列出。
经验总结:
一、看懂源码最重要,拿来主义可以开拓眼界,但是是只有看懂源码,才能更好的利用和消化原项目。
二、现在动手比规划重要,实际上增加这个功能时候,是没有上面那些规划的。都是一点一滴修正和总结的。
三、class类继承真的很有用,减少不小代码量。先有个基础画图类,然后在此基础上,只要重写一个函数,可以画出任何图形。
四、细节决定成败,函数域、坐标轴范围、使用的计算函数,这里面的坑真多。
最后尽量解耦,原函数plott变成如下,看起来有点多,主要还是里面的坑多,需要分门别类。

对源代码改动基本就是方框所示,外加自己写的.py画图文件。
Github Python计算器开源项目 二次开发--增加函数图形的更多相关文章
- 2016年GitHub排名前20的Python机器学习开源项目(转)
当今时代,开源是创新和技术快速发展的核心.本文来自 KDnuggets 的年度盘点,介绍了 2016 年排名前 20 的 Python 机器学习开源项目,在介绍的同时也会做一些有趣的分析以及谈一谈它们 ...
- GitHub Android 最火开源项目Top20 GitHub 上的开源项目不胜枚举,越来越多的开源项目正在迁移到GitHub平台上。基于不要重复造轮子的原则,了解当下比较流行的Android与iOS开源项目很是必要。利用这些项目,有时能够让你达到事半功倍的效果。
1. ActionBarSherlock(推荐) ActionBarSherlock应该算得上是GitHub上最火的Android开源项目了,它是一个独立的库,通过一个API和主题,开发者就可以很方便 ...
- Pull Request的正确打开方式(如何在GitHub上贡献开源项目)
Pull Request的正确打开方式(如何在GitHub上贡献开源项目) GitHub的官方帮助如下: Fork A Repo: https://help.github.com/articles/f ...
- 如何参与github上的开源项目
今晚比较闲,于是乎装修了一下博客,顺便将一块心病(怎么参加github上的开源项目)解决了,最后发个文章总结下 这些是参考的链接 http://blog.csdn.net/five3/article/ ...
- Fragment为载体可自己主动布局的CardView(GitHub上写开源项目初体验)
转载请注明本文出自大苞米的博客(http://blog.csdn.net/a396901990),谢谢支持! 开篇废话: 前些天一直在看Android5.0 的Material Desgin,里面新增 ...
- 开源项目|Go 开发的一款分布式唯一 ID 生成系统
原文连接: 开源项目|Go 开发的一款分布式唯一 ID 生成系统 今天跟大家介绍一个开源项目:id-maker,主要功能是用来在分布式环境下生成唯一 ID.上周停更了一周,也是用来开发和测试这个项目的 ...
- Android开源项目(二)
第二部分 工具库 主要包括那些不错的开发库,包括依赖注入框架.图片缓存.网络相关.数据库ORM建模.Android公共库.Android 高版本向低版本兼容.多媒体相关及其他. 一.依赖注入DI 通过 ...
- GitHub 优秀Android 开源项目
阅读目录 1.Xabber客户端 2.oschina客户端 3.手机安全管家 4.星座连萌 5.玲闹铃 6.魔乐盒 7.PWP日历 8.Apollo音乐播放器 9.夏普名片识别 10.高仿人人网 11 ...
- Python优秀开源项目Rich源码解析
这篇文章对优秀的开源项目Rich的源码进行解析,OMG,盘他.为什么建议阅读源码,有两个原因,第一,单纯学语言很难在实践中灵活应用,通过阅读源码可以看到每个知识点的运用场景,印象会更深,以后写代码的时 ...
随机推荐
- 安装xshell6
xshell作为一个强大的安全终端模拟软件,深受广大人民喜爱,本文将介绍如何在Windows环境下安装最新版本的xshell客户端. 一,下载 1,打开官网下载链接https://www.netsar ...
- 环境篇:Atlas2.1.0兼容CDH6.3.2部署
环境篇:Atlas2.1.0兼容CDH6.3.2部署 Atlas 是什么? Atlas是一组可扩展和可扩展的核心基础治理服务,使企业能够有效地满足Hadoop中的合规性要求,并允许与整个企业数据生态系 ...
- angular8 大地老师学习笔记---第十课
import { Component,Input} from '@angular/core';@Component({ selector: 'app-lifecycle', templateUrl: ...
- 第九章 Nacos Config--服务配置
今天咱们接着 上一篇 第八章 SMS–短信服务 继续写 SpringCloud Alibaba全家桶 -> 第九章 Nacos Config–服务配置,废话不多说,开干 9.1 服务配置中心介绍 ...
- 华为Mate20 Adb驱动失败
今天拿到同事一台华为Mate20,准备装个包,结果发现adb一直 no devices,AndroidStudio当然也显示 no connected devices 开发者模式也打开了,USB调试也 ...
- Abp vNext异常处理的缺陷/改造方案
吐槽Abp Vnext异常处理! 哎呀,是一个喷子 目前项目使用Abp VNext开发,免不了要全局处理异常.提示服务器异常信息. 1. Abp官方异常处理 Abp项目默认会启动内置的异常处理,默认不 ...
- 装逼篇 | 抖音超火的九宫格视频是如何生成的,Python 告诉你答案
1. 场景 如果你经常刷抖音和微信朋友圈,一定发现了最近九宫格短视频很火! 从朋友圈九宫格图片,到九宫格视频,相比传统的图片视频,前者似乎更有个性和逼格 除了传统的剪辑软件可以实现,是否有其他更加快捷 ...
- 卡尔曼滤波学习笔记1-Matlab模拟温度例子--代码比较乱,还需优化
温度模拟参数选取 xk 系统状态 实际温度 A 系统矩阵 温度不变,为1 B.uk 状态的控制量 无控制量,为0 Zk 观测值 温度计读数 H 观测矩阵 直接读出,为1 wk 过程噪声 温度变化偏差, ...
- Android虚拟机Genymotion的安装与使用
1.首先官网下载genymotion-2.12.2-vbox包,首选第一个带有box,点击安装 2.安装完毕选择自己要用的安卓系统,建议选择安卓4.0以上全部 3.启动打开虚拟机 4.安装外部APP, ...
- Filezilla账号设置多个文件夹
问题描述 一个账号,使用多个文件目录.虽然可以这样设置,但是实际上客户端使用时只能使用一个目录(主目录). 所以想找一种方式,访问一个主目录时,也可以访问到其他的目录. 官网示例 https://wi ...