[Python] Python, gui e wsgi

Giorgio Zoppi giorgio.zoppi a gmail.com
Gio 26 Feb 2009 00:50:19 CET


Il 26 febbraio 2009 0.13, Enrico 'Henryx' Bianchi <henryx_b a yahoo.it>
ha scritto:
> Zanon Samuele wrote:
>> - Dove posso trovare un bel how-to per iniziare a programmare in
>> python con interfacce grafiche (magari con qualche consiglio su quale
>> libreria utilizzare)
> La scelta di un toolkit grafico non e` una cosa semplice ed indolore,
> bisogna tenere conto di vari fattori e dei vincoli a cui si va incontro.
> Personalmente, ritengo che seguire questi criteri possa aiutare parecchio:
>
> - Tenere bene in mente la piattaforma target. Ritengo che questa sia il
> criterio piu` importante, in quanto permette di fare delle scelte mirate
> e di non andare alla cieca. Per fare un esempio, se intendo sviluppare
> sempre e solo GUI per Windows, e` inutile che perda del tempo nello
> studio del toolkit PyGTK, ma mi conviene concentrarmi sul toolkit
> pywin32 che, tra le altre cose, oltre a farmi ottenere un risultato piu`
> integrato nella piattaforma, mi permette di creare GUI piu` articolate
> rispetto ad un toolkit generico. Se invece intendo sviluppare su piu`
> piattaforme, mi conviene vedere quale sia il toolkit che mi permette di
> coprire con buoni risultati tutti gli ambienti che mi interessano (e.g.
> PyQT mi permette di coprire Windows e Os X, mentre PyGTK attualmente
> copre il sistema della mela solo in maniera non ufficiale).
> - Verificare le funzionalita` offerte dal toolkit. Alcuni toolkit, come
> ad esempio PyQT e WxWidgets, sono dei veri e propri framework le cui
> funzionalita` spaziano dalla creazione delle GUI alla gestione delle
> connessioni di rete. Inoltre, e` da tenere bene in mente anche la
> varieta` di oggetti messi a disposizione per la creazione
> dell'interfaccia. Per fare un esempio, Tkinter non ha un componente per
> la creazione delle tabelle, componente che e` invece presente negli
> altri toolkit.

Risulta molto difficile spesso creare codice prettamente portabile (ce
sempre qualcosina
qua e la da modificare) con quasi tutti i  toolkit
citati, motivo in piu per sottolineare ...dove lo vuoi scrivere?
Motivo percui per esempio il motto javish  Code once, run
anywhere...e' leggenda.

> - Considerare la licenza di distribuzione del toolkit. Questo e` un
> criterio basato sulle questioni di principio ed opportunistiche.
> Attualmente, i toolkit grafici in circolazione vengono rilasciati con
> tre tipologie di licenza:
>  - GPL;
>  - LGPL, BSD o similari;
>  - Proprietaria.
> E` normale che questo comporta una serie di pro e di contro, con il
> quale bisogna sempre tener conto.
Questo puo' dipendere anche dalla politica dell'azienda. Nella
corporation in cui sto adesso
GPL e LGPL non si possono usare...non perche dannose ma perche su di
esse ce' il copyleft.
L'uso di copyleft per le corporation non è fattibile anche per i progetti
di ricerca, questo e' il motivo anche per cui lo ZFS non e' stato
interamente portato su linux ma solo su FUSE.

> - Scegliere in base alla resa grafica che ci soddisfa (questo criterio
> ovviamente lo si applica sui toolkit multipiattaforma). Il criterio si
> spiega da solo: perche` dovremo usare Tkinter quando ci piace PyQT?

Ma in fondo uno vale l'altro i principi sono sempre gli stessi: device context,
mvc, paint refresh, disposizione dei controlli nella client area, eventi
Si, alla fine quello che e' meglio e' vedere dal punto di vista commerciale
quello piu spendibile in termini di offerte lavorative. E li per il
mondo Linux se la giocano
Qt e GTK (non dico che le wx non vadano a me piacciono di piu,
pero non sono mainstream).
 Poi vedere cosa ti conviene in termini di tempo:
* quanto ci metti ad imparare le qt e a gestire le interfacce con il designer ?
* quanto ci metti ad imparare le gtk?

> Queste sono le mie considerazioni, personalmente le ritengo piu` che
> valide, senza considerare che sono un buon modo per prendere una
> decisione in tal merito (ovviamente nessuno ti vieta di fregartene di
> quello che dico e di fare come ti pare). Per dei tutorial, puoi partire
> dal sito di Python, in cui c'e` una scheda per ogni toolkit (almeno per
> i principali) e varie risorse per il loro utilizzo
Ci sono un sacco di libri in giro su entrambe...un sacco di tutorial
free, just pick one!

Just 1c.
Gio.


Maggiori informazioni sulla lista Python