Un excelente tutorial para migrar a GTK+ 3 con Python

La mayoría de las aplicaciones que desarrollo para utilizar en Ubuntu, están implementadas en Python, utilizando PyGtk, en el caso de que se traten de aplicaciones gráficas. Por esta razón, en general se pueden utilizar en distintas versiones de Ubuntu, no en la que fueron desarrolladas, así, simplemente se trata de reempaquetarlas para una u otra versión. Y digo en general, porque si depende de librerías externas que varían de una versión a otra, si que pueden existir conflictos. Este es el caso de Ubuntu 11.10 Oneiric Ocelot, donde se pasa a utilizar GTK+ 3.

Nada mas empezar a probar esta nueva versión aparecieron los primeros bugs de las distintas aplicaciones:

Esto me ha obligado a migrar las aplicaciones a Gtk +3, pasando de utilizar PyGtk a PyGObject. Hasta ahora el rendimiento es bastante bajo, pues solo tengo completamente terminada My-Weather-Indicator, y llevo a medias Touchpad-Indicator, Picapy y Read-Me.

El problema de que me esté costando tanto es que hay muy poca documentación sobre el uso de PyGObject,  lo que me obliga a estar buscando y rebuscando por todo Internet en busca de información al respecto, y tengo que utilizar el manual de referencia de GTK+ 3 que es para C, y con imaginación y haciendo pruebas conseguir alcanzar el objetivo deseado.

Sin embargo ayer me encontré un interesante tutorial desarrollado por Sebastian Pölsterl, que si bien no está terminado, es todo un comienzo, mas que eso. Está disponible en http://python-gtk-3-tutorial.readthedocs.org, y me atrevo a decir que es de obligada consulta si quieres programar para GTK +3. Está perfectamente estructurado y es muy sencillo de seguir, además de incorporar excelentes ejemplos, que pueden servirte de iniciación y/o aclaración.

0031_6. Entry — Python GTK+ 3 Tutorial v3.0 documentation - Mozilla Firefox

Vía | Sebastian Pölsterl

Más información | http://python-gtk-3-tutorial.readthedocs.org

  • Ayer me instalé Zorin como backup de mi LMDE, me gusta tener dos sistemas instalados por si me falla uno, y de paso que sean distintos.

    Zorin es una ubuntu moderna, pero con Gnome2 y sobre todo un programita que en dos clicks te cambia el aspecto a MS WOS XP/7 u OSX.

    Un programita de cambio de aspecto para Gnome3 sería la bomba, look Gnome2, ahora fallback, y por supuesto XP/7/OSX. Lo que más echo de menos en Gnome shell y Unity es tener archivos y aplicaciones en el escritorio y accesos directos y applets en la barra de herramientas, mi indicador del monitor del sistema en Gnome2 me pirra.

    LMDE creo que sigue este camino Gnome3,  pero con aspecto de Gnome2, claro que no tiene ese programita de cambios de configuración.

    Te digo esto, porque no sólo de ubuntu vive el hombre y estas dos distros están creciendo entre los antiguos usuarios de Ubuntu.

    Hecho en falta en todas las distros en los paneles de control un sistema sencillo de ampliar la dpi de las fuentes.para hacerlas más grandes y legibles cuando las resoluciones de las pantalas son altas y por defecto las  fuentes siguen estando con bajos dpis. 

    También un botón de cambio rápido salida auriculares salida analógica, creo que debería estar en el menú contextual de sonido, ahora cuesta 5 o 6 clicks entrando en preferencias de sonido.

    En el gconf /desktop/gnome/font_rendering/dpi tengo puesto 100 para mi pantalla 16:9 de 24″ a 1280 x768 a 75 Hz en vez de a su máxima resolución 1920×1080 a 60 Hz, pues prefiero mayor refresco a mayor resolución.

    Además de sugerirte hacer que tus programas funcionen tanto en Zorin como LMDE – supongo que los paquetes *all.deb autodetectan arquitectura y distribución – otra aplicación que permita subir o bajar las dpis de las fuentes desde el panel de control de Gnome2 o 3 o desde cualquier sitio cómodo sería muy bien acogida por al comunidad, al menos por la que forman mis órganos visuales y extremidades superiores que cada vez tiene que configurar de esta forma un mayor tamaño de letra en cada distribución de linux que me instalo. Y si de paso te estiras añadir una acción al applet de sonido para hacer cambio rápido auriculares / altavoces.

  • Acabo de tener una idea que no se si costaría mucho, un instalador de paquetes universal, que graficamente instale rpms, debs y desde fuentes – a lo gentoo – sin conflictos. 

    Y de paso hacer una distribución con él que permita disponer simultáneamente de Gnome2, 3, Unity, Kde y demás, lo segundo maś difícil aún. Sobre todo por poder entrar en Gnome2 anulando el uso de las versiones de las librerias de Gnome3 y viceversa.

    Respecto de lo primero, basándose en Sabayon no debe ser tan difícil – creo – añadirle la posibilidad de instalar debs y rpms con alien, pero más sencillo, detectando siempre si existe el paquete en los repositorios Sabayon y luego gentoo creando una versión con alien si no existiese a partir de los RPMs o debs. 

    Incluso subiéndola a un repositorio de testeo por parte de los usuarios más intrépidos, a mi no me gusta compilar porque te pierdes las actualizaciones del sistema de repositorios. 

    O para mayor seguridad, cuando algún usuario instale un paquete disponible en deb y/o rpm que no esté en sabayon o gentoo, con este método, notificarlo a los administradores, de una manera automática, para que estos hagan la incorporación del paquete a la distribución con los ajustes necesarios, y en menos de una semana tenerlo a disposición “todo pulidito”, y el propio sistema detectarlo y cambiar su instalación con alien por la de la distribución.

    Añadiendo a esto un directorio para estas instalaciones temporales con alien, y un sistema de sandbox para mantener el sistema lo más estable posible, ese sistema de instalación universal acabaría imponiéndose en todas las distribuciones.

    No sé si lelvaría mucho trabajo añadir estas caracteristicas al instalador de programas de Sabayon, porque alien ya existe, y un notificador es sencillo de implementar, y creo que el isntalador de sabayon ya te detecta los paquetes alien para reemplazarlos por versiones propias de la distro, simplemente sería poder añadirle a este instaldor de paquetes la capacidad de añadir PPAs y repositorios deb y rpm para cuando no se encuentre la versión o el paquete que se busca.