Toga, BeeWare'in Python yerel, işletim sistemi yerel GUI araç setidir.

Neden Toga?

Toga dünyanın ilk widget araç seti değil - düzinelerce başka araç seti var Seçenekler. Öyleyse neden yeni bir tane inşa edelim?

Yerel widget'lar - temalar değil

Toga temaları değil, yerel sistem widget'larını kullanır. Bir Toga uygulaması gördüğünüzde çalıştırıldığında, yalnızca yerel bir uygulama gibi görünmekle kalmıyor, aynı zamanda yerel bir uygulama oluyor. Genel bir temanın üzerine işletim sisteminden ilham alan bir tema uygulamak widget seti, bir geliştiricinin platformlar arası bir widget seti elde etmesi için kolay bir yoldur. amaç, ancak son kullanıcıyı karmaşa ile baş başa bırakır.

Temalı widget setleri kullanılarak oluşturulmuş uygulamaları tespit etmek kolaydır - diğer uygulamalar gibi davranmayan uygulamalardır. Widget'lar tam olarak doğru görünmüyor veya bir macOS penceresinde bir menü çubuğu var uygulaması. Temalar oldukça yaklaşabilir - ancak her zaman belirgin işaretler vardır.

Bunun da ötesinde, yerel widget'lar her zaman temalı genel bir widget'tan daha hızlıdır. Widget. Ne de olsa, yerel sistem yeteneklerini kullanıyorsunuz. ayarlanmış ve optimize edilmiş bir çizim motoru değil genel bir widget. Ayrıca yerel platformun tüm ekran okuyucular için destek gibi erişilebilirlik olanakları ve uyarlanabilir yazı tipi boyutları.

Geniş kavramları soyutlayın

Yalnızca yerel bir uygulama gibi görünmek yeterli değildir - şunları yapmanız gerekir aynı zamanda yerel bir uygulama gibi hissettirir.

"Dosya" menüsü altındaki "Çık" seçeneği, bir dosya yazıyorsanız mantıklıdır. Windows uygulaması - ancak OS X kullanıyorsanız tamamen yersizdir - Çık seçeneği uygulama menüsünün altında olmalıdır.

Ve ayrıca - geliştirici neden bir Quit'in konumunu kodlamak zorunda kaldı? seçeneği zaten var mı? Dünyadaki her uygulamanın bir çıkma seçeneği olması gerekir, öyleyse neden Widget araç seti, önceden yüklenmiş bir çıkma seçeneği sunmuyor mu? Kutuyu mu?

Toga %100 yerel sistem widget'ları kullanıyor olsa da, bu Toga'nın sadece sistem widget'ları etrafında bir sarmalayıcıdır. Mümkün olan her yerde, Toga GUI yapısının temelini oluşturan daha geniş kavramları soyutlamak için uygulamalar ve bunun için bir API oluşturun. Yani - her Toga uygulamasının temel seti vardır Her uygulamadan bekleyebileceğiniz menü seçenekleri - Çık, Hakkında vb. yerel bir uygulamada görmeyi beklediğiniz yerlerde.

Widget'lar söz konusu olduğunda, bazen soyutlama basittir - sonra Hangi platformda olursanız olun, düğme düğmedir. Ancak diğer widget'lar tam anlamıyla açığa çıkmayabilir. Toga API'nin amaçları expose, kullanıcı arayüzü hedeflerine ulaşmak için bir dizi mekanizmadır, gerçek anlamda bir widget seti.

Python yerel

Çoğu widget araç takımı hayatına bir C veya C++ katmanı olarak başlar ve daha sonra diğer diller tarafından sarılır. Sonuç olarak, şu tadı veren API'lere sahip olursunuz C veya C++ gibi.

Toga, sıfırdan Python'a özgü bir widget olacak şekilde tasarlanmıştır araç seti. Bu, API'nin dil seviyesi özelliklerinden yararlanabileceği anlamına gelir jeneratörler ve bağlam yöneticileri gibi, bir C kütüphane bunu yapamazdı (en azından kolayca).

Toga Python 3 üzerinde çalışır. Python 2 üzerinde çalışmaz.

pip install ve daha fazlası değil

Toga, kullanımdan uzak bir pip yüklemesinden daha fazlası olmamayı amaçlamaktadır. Bu değil C uzantılarının derlenmesini gerektirir. Yüklemeye gerek yok ikili destek kütüphanesi. Sistem yollarını değiştirmeye gerek yoktur ve ortam değişkenleri. Sadece yükleyin, içe aktarın ve yazmaya başlayın (veya çalışıyor) kodu.

Embrace mobile

10 yıl önce, platformlar arası bir widget araç seti olmak şu anlama geliyordu Windows, OS X ve Linux için mevcuttur. Bugünlerde mobil bilgi işlem çok daha önemli. Ancak buna rağmen, çok fazla iyi seçenek yok mobil platformlarda Python programlama ve platformlar arası mobil kodlama hala zor. Toga bunu düzeltmeyi amaçlıyor.

How to help

So, why is it called "Toga"?

Roma'dayken, Romalıların yaptığını yapın. Peki bir Romalı ne giyer? Toga!