開始使用 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 與 Uni​​code

多年來,與 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 中不可用:

演示 Win10 上的截圖 **

關閉所有分支的 wxPython 演示: StackOverflow 文件 最近新增的 StackOverflow 文件 一個:AGW 之一,(高階通用小部件): StackOverflow 文件