[Python] costruzione GUI

Massimo Masson max a studiomasson.it
Mer 1 Apr 2009 16:34:32 CEST


danielita ha scritto:
> Innanzitutto grazie per le spiegazioni!
> 
> Da quanto hai scritto deduco che evidentemente mi hanno chiesto di 
> sviluppare la GUI a "manina" (usando wxpython) perchè devo aggiungere al 

...scusa non ti sto seguendo molto... da quanto scrivo io "tu deduci" 
una cosa che "hanno chiesto a te" ??? Non mi quadra...

> frame un canvas in cui inserire oggetti (immagini, testo) su cui 
> realizzare a "manina" il drag and drop, lo zoom, applicare maniglie per 
> ridimensionare gli oggetti, ecc. Tutto questo non si può fare con un GUI 
> builder?

Beh, no... con il GUI builder costruisci i widget di interfaccia, uno 
dei quali sarà un canvas, all'interno del quale poi le cose le 
realizzerai programmandole tu... (il GUI builder "disegna" i componenti 
dell'interfaccia, e basta... il canvas è un widget, il gui builder si 
ferma li...).

Peraltro, se le tue richieste riguardano oggetti (con maniglie, da 
ridimensionare, e via dicendo) da gestire via wxPython, ti suggerirei di 
guardare, nella demo standard, la sezione "OGL" (sotto miscellaneous mi 
pare...)

> Inoltre hai scritto che solo in fase di costruzione della GUI il dover 
> leggere a runtime un file xml da interpretare per creare la GUI richiede 
> un po' di tempo di esecuzione in più rispetto ad una generazione 
> "diretta" da codice.
> Ma ciò non è necessario nel corso della successiva esecuzione, perchè? 
> Forse perchè nella successiva esecuzione in entrambi i casi ho il bytecode?

Probabilmente non sono stato chiaro, con "costruzione della gui" 
intendevo la creazione dei vari widget da parte del programma (in 
esecuzione), non il tempo di design da parte del programmatore...
Il concetto è che nel caso si usi un file di risorse che descrive la GUI 
  il programma, per disegnare la stessa, deve leggere un file di testo 
che descrive la GUI, e sulla base di quella descrizione generare i widget.
Se il tutto è codificato (ovvero già scritto nel codice) in esecuzione 
si può procedere a generare i widgets senza leggere la descrizione dal 
file di testo. Questa è la differenza(1). Poi le GUI generate, a parità 
di widget usati, si comportano nello stesso identico modo.
Ovviamente la lettura del file di configurazione verrà effettuata ad 
ogni esecuzione.

HTH,
max.

(1) questa differenza di esecuzione è piccola con Python, ma può 
diventare più significativa con linguaggi compilati, tipo C++, che non 
devono interpretare il sorgente (o p.code). Peraltro, nei linguaggi 
compilati consente l'innegabile vantaggio di poter "rifare" la gui senza 
dover ricompilare il sorgente. In Python te ne accorgi "meno" perchè 
potresti facilmente modificare il codice, ma se fossi in ambienti dove 
il sorgente va "protetto" la strada dei files di risorse diventa 
estremamente importante.


Maggiori informazioni sulla lista Python