Consigli Interfacce grafiche
In questa sezione cercheremo di rispondere ad alcune delle domande più frequenti che riguardano il mondo della programmazione.
Per passare subito alle caratteristiche di ogni tipo di GUi:
Perchè c'è bisogno di includere un'interfaccia grafica?
Da alcuni anni ormai il mondo dell'informatica è cambiato e a differenza di una decina di anni fa quando un computer era uno strumento usato "soprattutto" da un'elitè ristretta di persone, in particolare da programmatori o da aziende, oggi le cose sono cambiate e poichè l'utente medio non utilizza programmi "da terminale" o "da linea di comando" c'è questo "bisogno" di sviluppare un'interfaccia grafica per qualsiasi programma (anche per un semplice codice fiscale). Ovviamente sviluppare un'interfaccia grafica non deve essere un obbligo, piuttosto deve dipendere anche dall'applicazione o dal compito che un programmatore si prefigge di portare avanti.
E' giusto imparare subito le interfacce grafiche?
Secondo alcuni è giusto imparare a sviluppare subito le interfacce grafiche in modo che quando il programmatore si trova a scrivere un programma non si senta "spaesato" dal dover implementare una GUI per il proprio programma, piuttosto metta subito insieme codice "vero e proprio" e interfaccia grafica. Secondo altri invece è meglio imparare prima le basi, in modo che non si faccia troppa confusione. Naturalmente ciò dipende molto dal tipo di programmatore e, come già detto in precedenza, dalle proprie esigenze.
Qual è la più semplice per un nuovo programmatore in Python?
Molto probabilmente è la domanda più difficile da rispondere. Ma nonostante ci sia una vasta scelta, bisogna dire che per sviluppare delle GUI è possibile usare dei tool appositi, come Glade, QtDesigner, WxDesigner (quest'ultimo viene rilasciato in copia di valutazione). Tuttavia, è possibile scrivere il codice, naturalmente in Python, per ogni libreria grafica scelta. Solitamente per sviluppare una GUI è importante conoscere il paradigma object-oriented (OOP) per garantire un maggiore livello di astrazione e di ereditarietà tra gli oggetti.
Come faccio a sapere quali interfacce sono portabili?
La seguente tabella cerca di riassumere le caratteristiche (inclusa la portabilità) dei più famosi toolkit grafici.
GUI |
Linux |
Windows |
MacOS |
Descrizione |
PyGtk(+PyGnome) |
Sì |
Sì(in parte) |
Solo se viene eseguito un altro server X |
E' un binding per le GTK (The Gimp ToolKit), ed è da poco diventato portabile (in parte) su Windows |
Sì |
Sì |
Solo OsX |
PyQt è un binding per le Qt, un toolkit sviluppato da Troll Tech |
|
Sì |
Sì |
Sì(per la maggior parte) |
TkInter è il più vecchio toolkit grafico per Python. E' un binding per le Tcl/Tk. E' conosciuto per la sua semplicità e perchè è già implementato in Python |
|
Sì |
Sì |
No |
WxPython è un binding per WxWindows, un'estensione dei toolkit Win32(Windows) e GTK(Unix) |
|
FxPy |
Sì |
Sì |
No |
Uno dei più piccoli toolkit, un binding per FOX. E' noto per la sua velocità d'esecuzione |
PythonWin |
No |
Sì |
No |
PythonWin, nonostante non sia documentato, è un'estensione delle librerie Microsoft MFC. Non portabile, naturalmente |
PyGtk
Si tratta di un binding per le Gtk, per cui si integrano perfettamente con GNOME, uno dei Desktop Environment per Linux più diffusi.
Consigliate anche perchè sono abbastanza semplici. Si trova molta documentazione.
Qt
Tkinter
Sono integrate in Python. Per importarle infatti basta dare un import tkinter e cominciare a scrivere la propria interfaccia.
Sono multipiattaforma, ovvero possono essere eseguite su gran parte dei sistemi Unix, Windows e Mac.
Molto semplici da imparare. Si trova molta documentazione.
WxPython