Toga 是 BeeWare 的 Python 原生、作業系統原生 GUI 工具套件。
[Why Toga?
Toga 並不是世界上第一個 widget 工具包 - 還有許多其他的 選擇。那麼為什麼要建立一個新的呢?
原生小工具 - 非主題
Toga 使用原生系統小工具,而非主題。當您看到 Toga 應用程式 執行時,它不只是看起來像原生應用程式,它就是原生應用程式。 在通用的 小工具集是開發人員達成跨平台目標的簡易方法。 目標的簡單方法,但卻會讓使用者感到亂七八糟。
使用主題 widget 集建立的應用程式很容易發現 - 這些應用程式的行為與其他應用程式不太一樣。 它們的行為與其他應用程式不太一樣。小工具 看起來不太對勁,或是在 macOS 應用程式的視窗上有菜單列。 應用程式。主題可以達到相當接近的效果,但總會有蛛絲馬跡。
除此之外,原生的 widget 總是比主題通用的 widget 更快。畢竟,您使用的是經過調整和最佳化的原生系統功能,而不是在其上層疊加的繪圖引擎。 經過調整和最佳化的原生系統能力,而不是在一般 widget 上層疊的繪圖引擎。 通用 widget 之上的繪圖引擎。它們也繼承了原生平台的所有 無障礙功能,例如支援螢幕閱讀器和 自適應的字型大小。
抽象出廣泛的概念
不過,光是看起來像原生應用程式還不夠,您還需要 感覺也要像原生應用程式。
如果您寫的是 Windows 應用程式,「檔案」功能表下的「結束」選項是合理的。 Windows 應用程式 - 但如果您是在 OS X 上,則完全不合適。 退出」選項應該在應用程式功能表之下。
此外 - 開發人員為何要編碼退出選項的位置? 選項的位置?世界上每個應用程式都必須有退出選項,那麼為什麼 為什麼 widget toolkit 不提供預先安裝的退出選項? 開箱即用?
雖然 Toga 使用 100% 原生系統 widget,但這並不表示 Toga 只是系統 widget 的包裝。在可能的情況下,Toga 嘗試 抽象出構建 GUI 應用程式,並為此建立 API。因此 - 每個 Toga 應用程式都有一套基本的 的選單選項 - Quit、About 等等 - 都在您所期望的地方。 在您期望在原生應用程式中看到的位置。
說到 widget,有時抽象的概念很簡單 - 畢竟,不管您在哪個平台上,按鈕就是按鈕。 畢竟,無論您在哪個平台上,按鈕就是按鈕。但其他 widget 可能就沒有這麼簡單了。Toga API 旨在 揭露的是一套實現 UI 目標的機制,而不是字面上的 widget 集。
Python 原生語言
大多數的 widget 工具套件一開始都是 C 或 C++ 層,然後再由其他語言包裝。 被其他語言包裝。因此,您最後得到的 API 像 C 或 C++。
Toga 從一開始就被設計成一個 Python 原生 widget 工具包。這表示 API 能夠利用語言層級的功能 產生器和上下文管理器等語言層級的功能。 函式庫的包裝程式所無法做到的。
Toga 可在 Python 3 上執行。它無法在 Python 2 上執行。
pip install,僅此而已
Toga 的目標是只需安裝一個 pip 即可使用。它不 不需要編譯 C 擴充套件。不需要安裝 二進位支援函式庫。不需要更改系統路徑和 環境變數。只要安裝、匯入,然後開始撰寫(或 執行)程式碼。
Embrace mobile
10 年前,要成為跨平台的 widget 工具套件,就必須在 Windows 適用於 Windows、OS X 和 Linux。如今,行動運算 更加重要。但儘管如此,在行動平台上進行 Python 程式設計的好選擇仍然不多。 行動平台上的 Python 程式設計,而且跨平台的行動 編碼仍然難以實現。Toga 旨在糾正這個問題。
How to help
So, why is it called "Toga"?
身在羅馬,就要像羅馬人一樣。羅馬人穿什麼?托加