[Python] Dubbi organizzazione progetto

Mr.SpOOn mr.spoon21 a gmail.com
Dom 25 Nov 2007 13:28:29 CET


On Nov 25, 2007 12:41 PM, Y3s <y3s a katamail.com> wrote:
> Cosa intendi con "passa per il rumore"?

Eheh, ho cercato di evitare i dettagli per non dilungarmi troppo, ma
forse ho solo fatto più confusione.

Ho tre oggetti principali che ho voluto dividere in 3 staticbox:
1) Trasmittente: ha  dei campi di testo e dei wxChoices e qualche
bottone per confermare le varie operazioni. Si inserisce un testo,
viene codificato in base a quanto specificato nei menu a tendina e fa
partire il messaggio.

2) Rumore: il messaggio deve passare da qui. In questo box c'è
semplicemente uno slider che definisce la quantità di rumore.

3) Ricevente: ci sono dei campi di testo nei quali apparirà il
messaggio nuovamente decodificato.

> Non ho ben capito la tua esigenza e il tuo dubbio :-)
> Comunque, se ho capito bene, quello che ti serve è un tuo oggetto che
> contiene una serie di widget, da poter istanziare "in un colpo solo"
> e riutilizzare, giusto?
>Se è così, crei una classe derivata da
> wx.Panel, nel suo __init__ costruisci i suoi figli (quindi staticbox,
> sliders & company), e poi te lo dimentichi (nel senso che ogni volta
> che ti serve devi solo fare un mio_panel = MioPanel
> (self.panel, ..parametri..))

Sì, su questo più o meno ci sono. Il problema ce l'ho negli elementi
più interni.
Ad esempio per il rumore non avevo fatto una classe separata, ma
semplicemente un metodo che generasse qualcosa di casuale basandosi
sul valore dello slider. Il fatto è che dovrebbe leggere questo valore
da qualche parte e mi sembra che l'unica soluzione sia:

- o l'utilizzo di una variabile globale
- o creare una classe rumore con i propri event handler etc.

Sbaglio o la soluzione è più semplice di quanto non la stia facendo io?
Considerate le due scelte, mi sembrava che una classe apposita fosse
meglio. In questo modo avrei fatto anche una classe Trasmittente e una
Ricevente, ognuna con i propri metodi etc.

Prendendo per buona questa decisione, non capisco bene come creare
queste classi. Ho pensato che dovessero essere sottoclassi di
StaticBox, tipo così:

class Trasmittente(wx.StaticBox):
    def __init__(self.panel, -1, "Trasmittente"):
    ...
    ...

Lo stesso farei per Rumore e Ricevente.
Il punto è che non ho capito bene la relazione fra gli StaticBox e gli
StaticBoxerSizer. Seguendo l'esempio del libro l'interfaccia l'ho
creata correttamente, a adesso mi blocco invece. Forse Trasmittente
dovrebbe essere sottoclasse di StaticBoxSizer?

Spero di essere stato un po' più chiaro stavolta :\


grazie ancora, ciao :D


More information about the Python mailing list