wxpython簡介

一絲不苟的克雷吉發表於2020-10-24

Python

​ Python是一種成功的指令碼語言,它最初是由Guido van Rossum開發的。它於1991年首次釋出。Python的靈感來自於ABC和Haskell程式語言。Python是一種高階的、通用的、多平臺的、解釋型的語言。有人更喜歡稱它為動態語言。它很容易學習。Python是一種極簡主義語言。它最明顯的一個特點是它不使用分號也不使用括號。Python使用縮排代替。今天,Python由全球一大批志願者維護。

​ 對於建立圖形使用者介面,Python程式設計師可以在三個不錯的選項中選擇。PyGTK、wxPython 和 PyQt。

wxPython模組

​ wxPython是一個用於建立桌面GUI應用程式的跨平臺工具箱。wxPython的主要作者是Robin Dunn。wxPython是wxWidgets的封裝器,而wxWidgets是一個成熟的跨平臺C++庫,開發者可以通過wxPython在Windows、Mac和各種Unix系統上建立應用程式。wxPython由五個基本模組組成。 file

​ 控制元件模組提供了圖形應用程式中常見的小部件。例如一個按鈕,一個工具欄,或者一個筆記本。Widget在Windows作業系統下被稱為控制元件。Core模組由開發中使用的基本類組成。這些類包括Object類,它是所有類的母類,Sizer,用於widget佈局,Events,基本的幾何類如Point和Rectangle。圖形裝置介面(GDI)是一組用於繪製到widget上的類。這個模組包含了用於操作字型、顏色、筆刷、筆或影像的類。Misc模組包含各種其他類和模組功能。這些類用於記錄,應用程式配置,系統設定,與顯示器或操縱桿一起工作。視窗模組由各種視窗組成,這些視窗構成了一個應用程式,例如一個皮膚,一個對話方塊,一個框架,或一個滾動視窗。

wxPython API

​ wxPython API 是一組方法和物件。控制元件是GUI應用程式的基本構件。在Windows下,widget稱為控制元件。我們可以大致將程式設計師分為兩類:他們要麼編寫應用程式,要麼編寫庫。在我們這裡,wxPython是一個庫,應用程式設計師用它來編寫應用程式。從技術上講,wxPython是在一個名為wxWidgets的C++ GUI API上的封裝器。所以它不是一個本地 API,也就是說,它不是直接用 Python 編寫的。

​ 在 wxPython 中,我們有很多小控制元件。這些可以分為一些組。

基礎控制元件

file

​ 這些控制元件為派生控制元件提供了基本功能。它們被稱為祖先。它們通常不被直接使用。

頂級控制元件

file

​ 這些控制元件相互獨立存在

容器

file

​ 容器中包含其他控制元件

動態控制元件

file

​ 這些控制元件可以由使用者編輯。

靜態控制元件

file

​ 這些控制元件顯示資訊。它們不能被使用者編輯。

其他控制元件

file

​ 這些控制元件在應用程式中實現了狀態列、工具欄和按鍵欄。

繼承

​ 在wxPython中,控制元件之間有一種特殊的關係。這種關係是通過繼承來發展的。繼承是物件導向程式設計的一個重要部分。小控制元件形成了一個層次結構,小控制元件可以繼承其他小控制元件的功能。現有的類被稱為基類、父類或祖類。繼承的控制元件我們稱之為派生控制元件或者子控制元件。

file

​ 假設我們在應用程式中使用一個按鈕控制元件。按鈕控制元件繼承了四個不同的基類,最接近的類是wx.Control類。一個按鈕控制元件是一種小視窗。所有出現在螢幕上的控制元件都是視窗,因此它們繼承自wx.Window類。有一些物件是不可見的。例如 sizers, 裝置上下文或 locale 物件。也有一些類是可見的,但它們不是視窗。例如,colour物件、caret物件或locale物件。並非所有的widgets都是控制元件。例如wx.Dialog不是控制元件的一種。控制元件是放置在其他稱為容器的widgets上的widgets,。這就是為什麼我們有一個單獨的wx.Control基類。

​ 每個視窗都可以對事件做出反應。按鈕部件也是如此。通過點選按鈕,我們啟動了wx.EVT_COMMAND_BUTTON_CLICKED事件。按鈕小元件通過wx.Window類繼承了wx.EvtHandler。每個對事件做出反應的widget都必須繼承wx.EvtHandler類。最後,所有的物件都繼承自wx.Object類。