Toga è il toolkit GUI nativo di Python e del sistema operativo di BeeWare.

Perché Toga?

Toga non è il primo toolkit di widget al mondo: ci sono decine di altre opzioni. opzioni. Quindi perché costruirne uno nuovo?

Widget nativi, non temi

Toga utilizza widget di sistema nativi, non temi. Quando si vede un'applicazione Toga in esecuzione, non sembra solo un'applicazione nativa: è un'applicazione nativa. L'applicazione di un tema ispirato al sistema operativo sopra un insieme di widget generici widget generici è un modo semplice per uno sviluppatore di raggiungere un obiettivo multipiattaforma. multipiattaforma, ma lascia all'utente finale un po' di confusione.

È facile riconoscere le app realizzate con set di widget tematici: sono quelle che non si comportano come le altre. sono quelle che non si comportano come le altre app. I widget non hanno un aspetto corretto, oppure c'è una barra di menu in una finestra di un'applicazione macOS. macOS. I temi possono avvicinarsi molto, ma ci sono sempre dei segni rivelatori.

Inoltre, i widget nativi sono sempre più veloci di un widget generico a tema. tematizzato. Dopotutto, si sta utilizzando una capacità di sistema nativa che è stata ottimizzate, non un motore di disegno sovrapposto a un widget generico. un widget generico. Inoltre, ereditano tutte le caratteristiche di accessibilità della piattaforma nativa. accessibilità della piattaforma nativa, come il supporto per gli screen reader e le dimensioni dei caratteri dimensioni adattive dei caratteri.

Astrarre i concetti generali

Tuttavia, non è sufficiente avere l'aspetto di un'applicazione nativa, ma è necessario anche che sentirsi come un'applicazione nativa.

Un'opzione "Esci" sotto il menu "File" ha senso se si sta scrivendo un'applicazione per Windows, ma è completamente fuori luogo se si è su OS X. Windows, ma è del tutto fuori luogo se si utilizza OS X: l'opzione di L'opzione "Esci" dovrebbe trovarsi nel menu dell'applicazione.

Inoltre, perché lo sviluppatore ha dovuto codificare la posizione di un'opzione di uscita? comunque? Ogni applicazione al mondo deve avere un'opzione di uscita, quindi perché perché il kit di strumenti per widget non fornisce un'opzione di uscita preinstallata, fuori dalla scatola? dalla scatola?

Sebbene Toga utilizzi al 100% i widget di sistema nativi, ciò non significa che Toga sia solo un involucro attorno ai widget di sistema. Dove possibile, Toga cerca di di astrarre i concetti più ampi che stanno alla base della costruzione di applicazioni e di creare un'API per questo. Quindi, ogni applicazione Toga ha il set di base di di opzioni di menu che ci si aspetta da ogni applicazione: Esci, Informazioni e così via. nei punti in cui ci si aspetta di vederle in un'applicazione nativa.

Quando si tratta di widget, a volte l'astrazione è semplice. un pulsante è un pulsante, indipendentemente dalla piattaforma su cui si trova. Ma altri altri widget possono non essere esposti in modo così letterale. L'obiettivo dell'API Toga è un insieme di meccanismi per raggiungere gli obiettivi dell'interfaccia utente, non una serie di widget.

Python nativo

La maggior parte dei toolkit per widget nasce come livello C o C++, che poi viene di altri linguaggi. Di conseguenza, ci si ritrova con API che sanno di come il C o il C++.

Toga è stato progettato da zero per essere un widget nativo Python nativo di Python. Questo significa che l'API è in grado di sfruttare le caratteristiche a livello di linguaggio come i generatori e i gestori di contesto in un modo che un wrapper attorno a una libreria C non sarebbe in grado di farlo (almeno, non facilmente).

Toga funziona su Python 3. Non funziona su Python 2.

pip installa e niente di più

Toga mira a non essere più di un'installazione di pip lontano dall'uso. Non richiede richiede la compilazione di estensioni C. Non c'è bisogno di installare una libreria binaria di supporto. Non è necessario modificare i percorsi di sistema e le variabili d'ambiente. variabili d'ambiente. Basta installarla, importarla e iniziare a scrivere (o eseguire) codice. eseguire) codice.

Abbracciare il mobile

10 anni fa, essere un toolkit per widget multipiattaforma significava essere per Windows, OS X e Linux. Al giorno d'oggi, il mobile computing è molto più importante. Ma nonostante ciò, non ci sono molte opzioni valide per la programmazione Python su piattaforme mobili. per la programmazione Python su piattaforme mobili, e la codifica mobile multipiattaforma è ancora e la codifica mobile multipiattaforma è ancora difficile da realizzare. Toga si propone di correggere questa situazione.

Come aiutare

Allora, perché si chiama "Toga"?

Quando sei a Roma, fai come i romani. E cosa indossa un romano? Una toga!