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画图文件。
最新文章
- 使用FlexPaper实现office文件的预览(C#版)
- Flume_使用
- Getting Started With Hazelcast 读书笔记(第二章、第三章)
- Electron - 创建跨平台的桌面客户的应用程序
- Java反射机制<;2>;
- C#关于new的用法
- Windows Squid 安装配置
- poj 3264 Balanced Lineup(RMQ裸题)
- HDOJ 1716 排列2 next_permutation函数
- 求字符串长度 strlen(数组指针两种方式)
- MySQL数据引擎
- Centos7 时区的设置
- linux 网络虚拟化: network namespace 简介
- PHP获取站点根目录
- Redis-五种数据类型解析
- Android解决自定义View获取不到焦点的情况
- rs.getMetadata
- 【原创】使用Java进行Clob转String字符串
- SQL触发器与CLR的使用
- 华为S5300系列交换机V100R005SPH021升级补丁
热门文章
- Day9 python高级特性-- 列表生成式 List Comprehensions
- (byte &; 0xff)操作
- SQL精华总结索引类型优化SQL优化事务大表优化思维导图❤️
- angular8 大地老师学习笔记---第九课
- LightningChart -XY 2D图表特性
- Java基础进阶:APi使用,Math,Arrarys,Objects工具类,自动拆装箱,字符串与基本数据类型互转,递归算法源码,冒泡排序源码实现,快排实现源码,附重难点,代码实现源码,课堂笔记,课后扩展及答案
- SVN 使用教程 命令 visual studio 使用SVN
- Redis基础篇(三)持久化:AOF日志
- 【Hadoop】:Windows下使用IDEA搭建Hadoop开发环境
- Listary效率快捷键