筆者按:
如果其他庫是核心,那麼將其美化的,包裝的,最終呈現在各位讀者面前的就是GUI。
19.1初始GUI19.1.1什麼是GUI?定義:是Graphical User Interface(圖形使用者介面),不僅是輸入文字,返回文字,使用者可以看到視窗,按鈕,文字框等圖形,並且藉助滑鼠、鍵盤進行輸入。三個基本要素:輸入,處理,輸出。19.1.2常用GUI框架筆者的題外話,本書採用的是wxpython。CSDN中的元宵大師開發的量化系統是wxPython,還有別的作者就是透過TK庫進行系統開發。但是就筆者個人看法而言,我們的GUI化最重要還是補充炒股軟體中的不足,而不是大力去還原一套軟體。那樣子得不償失,而且效率更慢,代價更大。就筆者的思考而言,要滿足的有:1.市場監控和異常2.策略有效性監控3.近期強勢股走勢變化【比如,在幾板開板以及未來一週走勢,便於我們抄寫作業和風控】4.模擬和推演等5.盤中推送和股票池維護6.進行歸一化處理,更好的識別強弱關係等減少資料傳輸壓力,減少資料購買或者下載,呼叫的成本等。19.2wxPython框架的使用19.2.1安裝pip install -U wxPython
19.2.2建立一個wx.app()的子類import pandas as pdimport wxclass APP(wx.App): #初始化方法 def ONInit(self): frame=wx.Frame(parent=None,title='hello wypython') frame.Show() return Trueif __name__ == '__main__': app=APP() app.MainLoop()
畫不出來19.2.3wx.App
import wxapp=wx.App()frame=wx.Frame(None,title='Hello wxpython')frame.Show()app.MainLoop()
19.2.4wx.Frame框架
import wxclass myframe(wx.Frame): def __init__(self,parent,id): wx.Frame.__init__(self,parent,id,title='建立Frame',pos=(100,100),size=(300,300))if __name__=='__main__': app=wx.App() frame=myframe(parent=None,id=-1) frame.Show() app.MainLoop()
19.2.5使用wx.Frame框架1.StaticText2.TextCtrl輸入文字類3.Button按鈕類19.2.6BoxSizer佈局說句實話,wxpython過於繞口,呼叫的函式大多數都有大小寫,輸入需要切換很多次,不利於呼叫,TK這一點要好一些,另外,相關的部署上要比TK更加複雜。
19.2.7事件處理19.3PyQt框架的使用19.3.1安裝PyQtpip install pyqt5
19.3.2使用第三方開發工具安裝比較複雜
19.3.3建立主窗體19.3.4常用控制元件19.3.5佈局管理19.3.6訊號與槽的關聯19.3.7資原始檔的使用程式碼+手動?哈哈,這真的是具有喜感的操作。