Github Python計算器開源專案 二次開發--增加函式圖形

老徐python發表於2021-01-19

先上原專案連結:https://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畫圖檔案。

相關文章