天天看點

複盤1____wxPython底層知識構架

複盤1____wxPython底層知識構架

    • wxPython必須的5個步驟
    • 基本的wxPython應用架構
    • 什麼是事件驅動程式設計
    • wxPython如何處理事件
    • 重構代碼的重要原則

wxPython必須的5個步驟

  1. 導入必須的wxPython包
  2. 子類化wxPython應用程式類
  3. 定義一個應用程式的初始化方法
  4. 建立一個應用程式類的執行個體
  5. 進入這個硬功程式的主時間循環
import wx  #1
class App(wx.App):  #2
	def OnInit(self):  #3
		frame = wx.Frame(parent=None, title="bare")
		frame.Show()
		return True

app = App()  #4
app.MainLoop()  #5
           

基本的wxPython應用架構

應用程式對象管理主事件循環。

頂層視窗通常管理最重要的資料,控制并顯示給使用者。

複盤1____wxPython底層知識構架

這個應用程式擁有頂層視窗和主事件循環。頂層視窗管理其視窗中的元件和其它的你配置設定給它的資料對象。視窗和它的元件的觸發事件基于使用者的動作,并接受事件通知以便改變顯示。

什麼是事件驅動程式設計

使用者觸發,大部分的時間程式什麼都不做。被動等待式。

wxPython如何處理事件

複盤1____wxPython底層知識構架

事件處理過程開始于觸發時間的對象。通常,wxPython首先在觸發對象中查找比對事件類型的處理器函數。如果找到,則相應的方法被執行。否則,wxPython将檢查事件是否傳送到了上一級的容器。如果是的話,父視窗部件将被檢查,這樣一級一級向上尋找,直到wxPython找到了一個處理器函數或到達了頂級視窗。如果事件沒有傳播,在處理過程完成之前,wxPython仍将為了處理器函數而檢查應用程式對象。

wx.Event 的Skip()方法來顯式地請求進一步處理。

預設情況下,隻有wx.CommandEvent及其子類的執行個體向上展開至容器級。

重構代碼的重要原則

  • 不要重複:你應該避免有多個相同功能的段。當這個功能需要改變時,這維護起來會很頭痛。
  • 一次做一件事情:一個方法應該并且隻做一件事情。各自的事件應該在各自的方法中。方法應該保持短小。
  • 嵌套的層數要少:盡量使嵌套代碼不多于2層或3曾。對于一個單獨的方法,深的嵌套也是一個好的選擇。
  • 避免字面意義上的字元串和數字:字面意義上的字元串和數字應使其出現在代碼中的次數最小化。一個好的方法是,把它們從你的代碼的主要部分中分離出來,并存儲于一個清單或字典中。