[PIPython] I thread e/o threading ........capitolo ostico!!!

Massimo Cecconi massimo.cecconi
Gio 28 Apr 2005 19:47:48 CEST


Salve a tutti,

sono alle prese con i thread di cui credo, che l'unica cosa che sono 
riuscito a capire, è che servono per gestire diverse "azioni" 
contemporaneamente senza "rompere le scatole" ad altre azioni in 
esecuzione, nello stesso momento appunto!!

Bene vi spego cosa devo fare io.....

Ho una interfaccia che prevede nella parte destra dello schermo, una 
colonna in cui vengono eseguite diverse operazioni.
In ogni caso ho uno schermo così diviso:

2 colonne

La prima colonna ha 4 pannelli in riga
La seconda colonna ha 2 pannelli in riga

In ogni pannello ci sono delle azioni che devono essere eseguite "a 
volte" in contemporanea con altre.

Come dicevo prima nella colonna di destra ho un pannello che (il più 
complicato) prevede dei form. Il primo form, prevede dei combo ed in 
base alla selezione di questi, quando premo il tasto di conferma, mi 
dovrà richiamare il form successivo che sarà idoneo in base alle scelte 
del primo form.

Ora come devo fare per mettere innanzitutto il secondo form al posto del 
primo e cioè la pagina così com'è deve solo cambiare "graficamente" 
all'interno dello stesso pannello senza influire sul resto dello 
schermo, ed in seguito in base a tutto ciò aggiornare alcuni degli altri 
pannelli???
Negli altri pannelli la grafica non viene toccata ma i dati in essa 
contenuti devono essere aggiornati.......

Quindi riepilogando devo:
Selezionare dal form un tipo di evento;
In base all'evento che è stato selezionato, eseguo una query ad un 
DB-SQlite;
recupero dei dati sempre dal database con un'altra query ed in base a 
questi richiamo un'altro form da inserire al posto del precedente (nello 
stesso spazio).
Eseguo le successive scelte, confermo, archivio nel database e rimetto 
nuovamente il primo form al suo posto pronto per un nuovo giro.....

Si lo so sembra complesso ma forse meglio di così non so spiegarvelo... 
sorry!! :(:(

In definitiva questi diamine di thread come dovrei implementarli?? per 
fare in modo da gestire tutto questo casotto????

Ogni tipo di aiuto è gradito grazie!!

Mi sono spulciato la rete ed ho anche acquistato un libro ma pur 
credendo di averli capiti sti diavolo di thread, non riesco proprio a 
capire come fare per utilizzarli!!! come?? quando??? dove????

l'interfaccia l'ho creata in questo modo:

class MainSlotPanel(wx.Panel):
    def __init__(self, parent, id = -1):
        wx.Panel.__init__(self, parent, id, wx.DefaultPosition, 
wx.DefaultSize, wx.STATIC_BORDER|wx.TAB_TRAVERSAL)

        Canvas1 = ActualSlotPanel(self)
        Canvas2 = PreviewResultSlot(self)
        Canvas3 = SlotPanel(self)
        Canvas4 = WeatherReportPanel(self)
        Canvas5 = CountDownPanel(self)
        Canvas6 = ManagerSlotPanel(self)
        #Canvas7 = ManagerSlotPanel_ViewType_1(self)
        #Canvas8 = ManagerSlotPanel_ViewType_2(self)
        #Canvas9 = ManagerSlotPanel_ViewType_3(self)

        box_MAIN = wx.FlexGridSizer(2,2,0,0,)

        box1 = wx.FlexGridSizer( 4, 0, 0, 0 )

        box1.Add(Canvas1, 0, wx.ALIGN_LEFT|wx.BOTTOM, 6)

        box1.Add(Canvas2, 0, wx.EXPAND)

        box1.Add(Canvas3, 0, wx.EXPAND)

        box1.Add(Canvas4, 0, wx.ALIGN_CENTER|wx.TOP, 6)

        box_MAIN.Add(box1, 0, 
wx.ALIGN_CENTER_HORIZONTAL|wx.ALIGN_TOP|wx.ALL, 5)

        box2 = wx.FlexGridSizer( 4, 0, 0, 0 )
       
        box2.Add(Canvas5, 0, wx.ALIGN_CENTER|wx.ALL, 3)

        box2.Add(Canvas6, 0, wx.ALIGN_CENTER|wx.ALL, 3)
        #box2.Add(Canvas7, 0, wx.ALIGN_CENTER|wx.ALL, 3)
        #box2.Add(Canvas8, 0, wx.ALIGN_CENTER|wx.ALL, 3)
        #box2.Add(Canvas9, 0, wx.ALIGN_CENTER|wx.ALL, 3)

        box_MAIN.Add(box2, 0, 
wx.ALIGN_CENTER_HORIZONTAL|wx.ALIGN_TOP|wx.ALL, 2)

        #box.Fit(self)
        self.SetAutoLayout(True)
        self.SetSizer(box_MAIN)

        self.Show(True)

i Canvas 6 7 8 9 sono i vari form di cui parlavo.

Il Canvas6 contiene il primo form mentre i Canvas 7 8 e 9 sono i form 
successivi che appaiono in base alle scelte del primo form.....



More information about the Python mailing list