Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

GUI sui Python: i Framework da usare

Panoramica dei principali framework e librerie disponibili per realizzare interfacce grafiche (GUI) utilizzando il linguaggio di programmazione Python.
Panoramica dei principali framework e librerie disponibili per realizzare interfacce grafiche (GUI) utilizzando il linguaggio di programmazione Python.
Link copiato negli appunti

In questa lezione vedremo una breve panoramica dei framework che consentono di costruire interfacce grafiche in Python.

Nelle lezioni precedenti abbiamo visto come costruire applicazioni in Python utilizzabili dalla riga di comando. L'utilizzo di un framework per la costruzione di interfacce grafiche risulterà necessario per fornire un aspetto professionale, ed aumentare l'usabilità delle applicazioni.

I framework per costruire GUI (Graphical User Interface) in Python possono essere suddivisi in due categorie:

  • Cross-platform_ totalmente portabili, conferiscono (quasi) sempre lo stesso aspetto a tutte le applicazioni, indipendentemente dal sistema operativo che le esegue;
  • Platform-specific: utilizzano elementi visuali forniti dal particolare sistema operativo che esegue l'interfaccia.

Tra le caratteristiche principali che andrebbero valutate quando si intende scegliere il framework più adatto alla nostra applicazione Python, bisognerebbe valutare:

  • Widget: è importante conoscere quali strumenti visuali mette a disposizione il framework (es. bottoni, menu, canvas, ecc...)
    per comprendere fin da subito se è ciò che fa per la nostra applicazione;
  • Licenza: il tipo di licenza offerta dal framework che intendiamo utilizzare è fondamentale, specialmente nel caso di applicazioni di natura commerciali;
  • IDE per lo sviluppo: l'esistenza di uno strumento IDE risulta fondamentale per abbattere i tempi di sviluppo e test. Quando possibile, dovremo sempre scegliere un framework con una buona IDE a supporto del processo di costruzione dell'interfaccia;
  • Supporto da parte del produttore: molti dei framework esistenti sul web sono caduti in disuso, e spesso la ragione è il mancato supporto da parte del produttore, la mancanza di aggiornamenti o la mancanza di un IDE.

Tra le decine e decine di frameworks per lo sviluppo di GUI in Python, vedremo adesso quelli che sono maggiormente utilizzati/supportati dai produttori. I framework con scarso supporto o caduti in disuso non verranno trattati in questa sede. Tra quelli osservati in questa breve panoramica, approfondiremo (nelle lezioni successive) quelli più utilizzati e meglio supportati.

Framework cross-platform

I framework cross-platform hanno la caratteristica di essere portabili su diversi sistemi operativi, consentendo agli sviluppatori di scrivere codice indipendente dalle librerie grafiche del sistema in esecuzione. Nella maggior parte dei casi, ciò implica che l'aspetto finale dell'applicazione rimarrà lo stesso, indipendentemente dal sistema operativo in esecuzione. I framework cross-platform che vedremo nella seguente tabella, in alcuni casi, possono anche appoggiarsi su librerie grafiche native: questo è un vantaggio in termini di efficienza dell'applicazione grafica, che sfrutterà appieno le capacità del sistema. D'altro canto, però, l'aspetto finale delle applicazioni cambierà (seppur in modo limitato) a seconda del sistema operativo su cui esse saranno eseguite.

Nome Home page Descrizione IDE consigliato
GuiZero [1] Un wrapper per la libreria Tkinter che consente la creazione di semplici GUI. Il paradigma di programmazione è molto semplice e pensato
per lo sviluppo anche da parte dei bambini. Supporta Windows, Mac, Linux e Raspberry Pi.
Eclipse+PyDev
Kivy [2] Una libreria che fornisce oltre 20 diversi widgets. Utilizza le OpenGL e gira su Linux, Windows, OS X, iOS, Raspberry Pi e Android. Totalmente gratuita,
ed utilizzabile secondo i termini della licenza MIT, anche per fini commerciali.
Eclipse+PyDev
PyForms [3] Una libreria compatibile con Python 2 e Python 3, che consente lo sviluppo di GUI su Windows, Linux e Mac OS X.
Disponibile secondo la licenza MIT. Le principali caratteristiche riguardano:

  • Un insieme di forms, basati su PyQt, OpenGL ed altre librerie;
  • Uno strato software che consente di integrare PyForms all'interno di browsers e GUI Desktop pre-esistenti;
  • Un paradigma che aiuta il mantenimento, la pulizia, la leggibilità ed il riutilizzo del codice.
Non disponibile
PyGObject [4] Un package per Python che consente di utilizzare i cosiddetti "GObject", ossia le utility fornite da GTK+, GStreamer,
WebKitGTK, GLib, GIO, ecc...
Il suo supporto è esteso a Linux, Windows e MacOS ed è compatibile con Python v2/v2. La licenza di utilizo
è la LGPL v2.1+.
Wing Python IDE
PyQt [5] Prodotta dalla società Riverbank, supporta Python v2/v3. Sostanzialmente è un wrapper
che consente di utilizzare le famose librerie Qt in Python.
Il supporto è esteso a Windows, OS X, Linux, iOS ed Android. Implementa oltre 1000 classi, per
la nuova versione PyQt5, che è attualmente supportata dalla compagnia produttrice delle librerie stesse.
Le licenze disponibili sono di due tipo: GNU GPL v3 e la licenza commerciale della Riverbank.
Pywebview [6] Un wrapper per il componente webview,
compatibile con Python v2/v3.
Consente di visualizzare contenuti HTML all'interno della GUI stessa, facilitando
dunque l'inserimento di contenuti web senza richiedere l'utilizzo di un
browser.
Particolarmente utile nello sviluppo di applicazioni lightweight, il suo utilizzo
può essere facilmente combinato con web frameworks quali Flask

o

Bottle
.
Il wrapper utilizza componenti nativi per la creazione delle GUI, sia su Windows che
su Mac OS X, che per Linux. La licenza disponibile è la BSD.
Non disponibile
Tkinter [7] Il framework più "essenziale" per la creazione di GUI in Python.
Supporta sia Python 2 che 3, ed è integrato all'interno del linguaggio stesso.
Non è particolarmente evoluto e consigliato solamente per GUI molto semplici. Se
cercate la potenza di un web framework abbandonatene l'utilizzo.
Vtk [8] Una libreria open-source, capace di fornire primitive per l' informatica grafica,
elaborazione delle immagini, visione artificiale e visualizzazione dei dati.
Fornisce una miriade di widgets, inclusi quelli per la navigazione 3D degli oggetti mostrati.
Compatibile con Windows, Mac, Unix, fornito come strumento open-source, regolato dalla licenza BSD.
Non disponibile
WxPython [9] Una libreria per la creazione di GUI, che agisce da wrapper per i cosiddetti "wxWidgets", scritti in C++.
WxPython è totalmente open source, e regolato dalla licenza wxWindows Library Licence.
Al momento, le piattaforme supportate sono: Windows, Mac OS X e Linux.
Unica pecca, manca il supporto per Python 3.

Framework platform-specific

I framework platform-specific non sono molto diffusi, in quanto le applicazioni risultanti sono utilizzabili solo una categoria di sistemi operativi. Nella seguente tabella vedremo le caratteristiche di due framework che stanno comunque ottenendo una discreta diffusione nell'ambito dei sistemi Windows ed Android:

Nome Home page Descrizione IDE consigliato
IronPython [10] Un framework che consente di utilizzare
la sintassi di Python, con gli strumenti grafici offerti da .NET framework (incluso
silverlight lato browser).
Chiaramente funzionerà solo sui sistemi Windows, ed è compatibile solamente
con Python 2.7. Distribuito con licenza Apache 2.0. Interessante
l'add-on Python tools che consente lo sviluppo rapido ed il testing
tramite il famoso IDE Visual Studio.
Python tools
Chaquopy [11] Una libreria per Android Studio, che consente di mixare codice Python e Java
in una singola applicazione. Il punto di forza è il supporto completo alle
Android Api. Compatibile con Python v2/v3, fornito con licenza open-source e commerciale.
Android Studio

Ti consigliamo anche