開始使用 wxpython
什麼是 wxPython
簡單地說,wxPython 是一組繫結到 wxWidgets C++ Cross Platform GUI 庫的。
好的什麼是 wxWidgets
wxWidgets 庫為各種 GUI 元素提供免費,免費和開源的抽象集,以便在可用的情況下仍然使用本機控制元件,從而保持原生外觀,感覺和速度。因此,它為 GUI 建立和平臺中的許多其他實用程式提供了抽象,允許開發人員使用單個程式碼庫為 Windows,Mac OS X,Linux 和其他平臺建立應用程式。wxWidgets 始於 1992 年,你可以在這裡看到詳細的歷史。wxWidgets 庫是在 wxWindows 許可證下發布的,該許可證基於 L-GPL 但具有異常子句。 exception 子句允許你動態或靜態地將應用程式連結到 wxWidgets 而不用要求為你自己的應用程式分發原始碼。換句話說,你可以使用 wxWidgets 的為任一免費或商業專案,在沒有成本。許可證鼓勵你回饋你對 wxWidgets 庫本身所做的改進。
重點介紹,wxWidgets 包含 100 個用於跨平臺應用程式開發的類 :
- 使用 Sizer 的視窗布局
- 裝置上下文(以及鋼筆,畫筆和字型)
- 綜合事件處理系統
- HTML 幫助檢視器
- 聲音和視訊播放
- Unicode 和國際化支援
- 文件/檢視架構
- 列印結構
- 套接字
- 多執行緒
- 檔案和目錄操作
- 線上和上下文相關的幫助
- HTML 渲染
- 基本容器
- 影象載入,儲存,繪圖和操作
- 日期時間庫和計時器
- 錯誤處理
- 剪貼簿和拖放
請注意,其中一些工具( 例如執行緒) 實際上與 GUI 無關,但提供了有用的跨平臺抽象,因此,例如,線上程化的情況下,一組應用程式程式碼將在任何支援的平臺上執行。
多年來,除了從一組原始碼,為 ASCII 和 Unicode 構建的靜態和動態庫的除錯構建之外, wxWidgets 庫還生成了 4 個獨立的構建。它通常以最常見的變體預先構建,並作為原始碼構建,具有針對目標環境的各種選項以及支援眾多工具鏈的開發人員 C++工具鏈。
這個庫的 python 繫結和一些新增形成了 wxPython。
回到什麼是 wxPython,(它給了我什麼)?
wxPython 為開發人員提供了一種從跨平臺 GUI 庫中獲益的方式,具有明確的許可證,同時還提供了 Python 的優勢。像 wxWidgets 和 Python 一樣,wxPython 是免費的,免費和開源的,可以在免費和商業專案中使用和分發,而不需要分發你的原始碼。
- 完整的 GUI 套件包括(但不限於):
- Windows(包括 MDI Windows)
- 奇才
- 框架和迷你框架
- 對話,標準,高階和自定義
- 書籍,樹木,網格和資料檢視控制元件
- 儀表,滑塊,旋轉器,動畫,剪貼簿,拖放
- HTML,PDF 和影象檢視器支援
- GUI 元件可以絕對定位,但強烈建議使用基於 sizer 的佈局,支援自動調整大小等。
- 跨平臺 - 支援 Windows,OS-X 和 Linux 的 GUI,只需一個程式碼庫*,程式碼中沒有條件語句*
- 原生速度,外觀和感覺。
- 快速原型,測試和除錯 - 記住這是 python
- 執行和編輯演示包中幾乎所有內容的示例。
- 即使在商業產品中也可以免費使用免費許可。
- 如果有必要,你的 python GUI 可以稍後重構為 C++ wxWidgets GUI,因為它已經在使用它。
- StackOverflow 和郵件列表上的大型,活躍且有用的使用者和開發人員社群。
請注意,在 python 本身提供用於實現 wxWidgets 的實用程式功能的跨平臺機制的情況下,執行緒再次成為一個很好的示例,故意從 wxPython 中省略。
wxPython 還有一個非常大的演示套件,可以在 Documents and Demo 包中執行,測試和編輯。
wxPython 的味道
ASCII 與 Unicode :
多年來,與 wxWidgets 一樣,開發人員必須在 ASCII 和 Unicode 構建之間進行選擇,並且需要針對特定版本的 python 以及 32/64 位選項進行構建。從 wxPython 2.8.9 開始,wxPython 的 ASCII 唯一版本已被刪除,因此 Unicode 支援始終可用。
經典與菲尼克斯 :
從 wxPython 3.0.0 開始,已經釋出了 wxPython 的釋出 Classic
版本以及 Phoenix 目前尚未釋出的版本。經典構建往往落後於相同數字的 wxWidgets 構建,文件包是 C++ - 它可以在各種平臺上下載(參見 Classic 的安裝 ),在 windows 作為可執行安裝程式的情況下。Phoenix 繫結在很大程度上是自動生成的,應該更緊密地關注 wxWidgets 構建,還包括 wxPython 特定文件 - 它可以從原始碼或夜間版本構建,因為可以使用 pip 獲取輪子 (參見 Phoenix 的安裝 )。
在 wxPython 但不是 wxWidgets
wxPython 使用許多功能擴充套件了 wxWidgets 庫,*以下只是一些,*在 wxWidgets 中不可用:
- 程式設計師編輯和外殼: 地殼 , crustslices , AlaCart 和 AlaMode , AlaModeTest
- 直譯器和魔術師
- 檢查 - 這允許你啟動一個視窗來瀏覽所有應用程式 GUI 元件。
- 一套廣泛的演示
演示 Win10 上的截圖 **
關閉所有分支的 wxPython 演示: 最近新增的 一個:AGW 之一,(高階通用小部件):