Torniamo ora alla nostra rubrica dedicata ai tool per lo sviluppo. Python è uno dei linguaggi più avanzati per la programmazione e per questo oggi vogliamo parlarvi di alcuni Python GUI Frameworks tra i più utilizzati. Questi tool permettono di creare interfacce grafiche per le nostre applicazioni, feature che prima o poi ogni sviluppatore si ritrova a dover implementare nei propri progetti.
Kivy
Partiamo da Kivy, si tratta di un progetto rilasciato sotto licenza MIT e basato sulle OpenGL ES 2. Include il supporto nativo ai sistemi multitouch e alle piattaforme mobile Android e iOS. È un framework event-driven basato su un main loop, l'applicazione aggiungerà dunque le callback dal main loop tramite frequenza programmata oppure con un sistema di one-off trigger. Risulta inoltre molto comodo per chi deve sviluppare videogame in quanto è in grado di gestire le animazioni.
PyQt
Passiamo a PyQt, le Qt sono delle librerie grafiche cross-platform open source scritte in C++. Vengono utilizzate in tantissimi progetti open source (rappresentano ad esempio il "core" del desktop environment KDE) per realizzare interfacce grafiche. PyQt unisce dunque le grandi potenzialità delle Qt a Python, permettendo quindi di sviluppare delle GUI perfettamente integrate ed ottimizzate.
PyGUI
È ora il turno di PyGUI (The Python GUI Project), il progetto nasce all'interno dell'Università di Canterbury ed è stato sviluppato da Greg Ewing. L'obbiettivo del developer è quello di inserire meno codice possibile tra il programma e la GUI, che deve rispettare gli standard della piattaforma su cui viene eseguita. Dunque, se si sta studiando il comportamento delle GUI e il loro metodi di sviluppo PyGUI è l'ideale visto che permette di apprendere diversi concetti utili.
libavg
Infine andiamo su libavg, è una libreria multipiattaforma scritta in C++, sotto licenza LGPL, che è stata scriptata appositamente per Python.libavg utilizza le OpenGL per gestire le animazioni e l'accelerazione hardware. Viene spesso utilizzata per le esibizioni artistiche, infatti grazie al suo layout engine può gestire migliaia di oggetti ed eventi (immagini, testo, video e output della videocamera).