Toga es el kit de herramientas GUI nativo de Python y OS de BeeWare.

¿Por qué Toga?

Toga no es el primer conjunto de herramientas de widgets del mundo. opciones. Entonces, ¿por qué crear uno nuevo?

Widgets nativos - no temas

Toga utiliza widgets nativos del sistema, no temas. Cuando ves una aplicación Toga no sólo parece una aplicación nativa, sino que es una aplicación nativa. Aplicar un tema inspirado en el sistema operativo sobre un conjunto genérico de widgets es una forma fácil para un desarrollador de conseguir una aplicación nativa. widget genérico es una forma fácil para un desarrollador de lograr un objetivo multiplataforma. multiplataforma, pero deja al usuario final con el lío.

Es fácil detectar las aplicaciones creadas con conjuntos de widgets temáticos. son las que no se comportan como cualquier otra aplicación. Los widgets no se ven del todo bien, o hay una barra de menú en una ventana de una aplicación macOS. macOS. Los temas pueden acercarse bastante, pero siempre hay signos reveladores.

Además, los widgets nativos son siempre más rápidos que un widget genérico temático. temático. Después de todo, estás usando la capacidad nativa del sistema que ha sido sintonizado y optimizado, no un motor de dibujo que se ha superpuesto sobre un widget genérico. También heredan todas las características de accesibilidad de la plataforma nativa, como la compatibilidad con los widgets genéricos. plataforma nativa, como la compatibilidad con lectores de pantalla y y tamaños de fuente adaptables.

Abstraer los conceptos generales

Pero no basta con que parezca una aplicación nativa. sentirse también como una aplicación nativa.

Una opción "Salir" en el menú "Archivo" tiene sentido si estás escribiendo una aplicación para Windows, pero está completamente fuera de lugar si estás en OS X. Windows - pero está completamente fuera de lugar si estás en OS X - la opción "Salir" debería estar en el menú de la aplicación. Salir debería estar en el menú de la aplicación.

Y además, ¿por qué el desarrollador tuvo que codificar la ubicación de una opción Quit de todos modos? Cada aplicación en el mundo tiene que tener una opción de salir, así que ¿por qué el widget toolkit no proporciona una opción de salir preinstalada, de fuera de la caja?

Aunque Toga utiliza widgets del sistema 100% nativos, eso no significa que Toga sea sólo una envoltura alrededor de los widgets del sistema. En la medida de lo posible, Toga intenta abstraer los conceptos más amplios que sustentan la construcción de aplicaciones GUI y construir una API para ello. Así - cada aplicación Toga tiene el conjunto básico de opciones de menú que esperarías de cada aplicación - Salir, Acerca de, etc. - todas en los lugares que esperarías ver en una aplicación nativa.

Cuando se trata de widgets, a veces la abstracción es simple. después de todo, un botón es un botón, independientemente de la plataforma. Pero otros widgets pueden no estar expuestos tan literalmente. Lo que la API Toga pretende exponer es un conjunto de mecanismos para alcanzar los objetivos de la interfaz de usuario, no un conjunto literal de widgets. conjunto de widgets.

Python nativo

La mayoría de los conjuntos de herramientas de widgets comienzan su vida como una capa de C o C++, que luego es envuelta por otros lenguajes. Como resultado, terminas con APIs que saben a a C o C++.

Toga ha sido diseñado desde cero para ser un widget nativo de Python nativo de Python. Esto significa que la API es capaz de explotar las características de nivel de lenguaje como generadores y gestores de contexto de una manera que una envoltura alrededor de un C no podría (al menos, no fácilmente).

Toga funciona con Python 3. No funciona con Python 2.

pip install y nada más

Toga pretende ser no más que una instalación pip lejos de su uso. No requiere la compilación de extensiones C. No hay necesidad de instalar una biblioteca de soporte binario. No hay necesidad de cambiar las rutas del sistema y variables de entorno. Basta con instalarlo, importarlo y empezar a escribir (o ejecutar) código.

Embrace mobile

Hace 10 años, ser un widget multiplataforma significaba estar disponible para Windows, OS X y Linux. disponible para Windows, OS X y Linux. Hoy en día, la informática móvil es mucho más importante. Pero a pesar de esto, no hay muchas buenas opciones para programar con Python en plataformas móviles, y la programación multiplataforma móvil multiplataforma. Toga pretende corregir esta situación.

¿Cómo ayudar?

Entonces, ¿por qué se llama "Toga"?

Cuando estés en Roma, haz como los romanos. ¿Y qué lleva un romano? Una toga.