[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