Github Python計算器開源項目 二次開發–增加函數圖形

先上原項目鏈接://github.com/taapasX28/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畫圖文件。