[PIPython] da locale a globale - un po' lungo

Topomorto topomorto
Mar 18 Gen 2005 16:27:37 CET


Ciao a tutti. Sono nuovo in python e mi sto studiando wxPython con 
boa-constructor e non mi sembra malaccio.
Sto facendo un giochino per mia figlia che andrà a scuola a settembre, e 
sono intenzionato a lasciare libere anche le sorgenti.
Le stesse le trovate (dalle 7.30 alle 22.30) all'indirizzo
ftp://62.94.102.202
user: python
password: pitone

Non giudicatelo male... è ancora tutto da sviluppare inclusa la grafica 
aggiungendo immagini, funzioni ecc.....

Fatta la premessa ho un problema.
Col programmillo cambio il valore della variabile locale (in wxFrame1) 
di self.punteggioframe1.
Ora vorrei portarmi il punteggio totalizzato a spasso per altri frame - 
magari per dire qualcosa del tipo: brava, hai fatto 19 punti....- su un 
altro frame
Suppongo che devo far diventare self.punteggioframe1 in variabile 
globale....

Ne ho provate tante ma senza riuscire.... qualcuno può aiutarmi?
Ecco lo script talgiato perchè lungo, cmque le sorgenti le trovate dove 
ho detto sopra.
Grazie



from wxPython.wx import *
from wxPython.lib.intctrl import *
from wxPython.lib.stattext import wxGenStaticText
from domande import domande
from risposte import risposte

numerodelledomande = len(domande)


def create(parent):
    return wxFrame1(parent)



[wxID_WXFRAME1, wxID_WXFRAME1BT1, wxID_WXFRAME1BT2, wxID_WXFRAME1BT3,
 wxID_WXFRAME1NUMERODOMANDA, wxID_WXFRAME1NUMRISP, wxID_WXFRAME1PUNTEGGIO,
 wxID_WXFRAME1TESTOPUNTEGGIO, wxID_WXFRAME1TESTOSTATICO2, 
wxID_WXFRAME1GENSTATICTEXT1,
] = map(lambda _init_ctrls: wxNewId(), range(10))

[wxID_WXFRAME1PUNTEGGIO] = map(lambda punti: wxNewId(), range(1))

[wxID_WXFRAME1GESTISCIITEMS0] = map(lambda _init_coll_Gestisci_Items: 
wxNewId(), range(1))

[wxID_WXFRAME1FILEITEMS0] = map(lambda _init_coll_File_Items: wxNewId(), 
range(1))


class wxFrame1(wxFrame):
   
#taglio.......

    def _init_ctrls(self, prnt):
        # generated method, don't edit
        wxFrame.__init__(self, id=wxID_WXFRAME1, name='wxFrame1',
              parent=prnt, pos=wxPoint(292, 334), size=wxSize(608, 342),
              style=wxDEFAULT_FRAME_STYLE, title='Giulia impara a leggere')
        self._init_utils()
       
##altro taglio........

    self.bt1 = wxButton(id=wxID_WXFRAME1BT1, label='Bau', name='bt1',
                  parent=self, pos=wxPoint(136, 112), size=wxSize(99, 
32), style=0)
            self.bt1.SetBackgroundColour(wxColour(255, 255, 128))
            self.bt1.SetFont(wxFont(10, wxSWISS, wxNORMAL, wxBOLD, False,
                  'Comic Sans MS'))
        EVT_BUTTON(self.bt1, wxID_WXFRAME1BT1, self.OnBt1Button)
       
###altro taglio

        self.punteggio = wxIntCtrl(allow_long=False, allow_none=False,
              default_color=wxBLACK, id=wxID_WXFRAME1PUNTEGGIO, 
limited=True,
              max=None, min=None, name='punteggio', oob_color=wxRED,
              parent=self, pos=wxPoint(264, 200), size=wxSize(40, 34), 
style=0,
              value=0)
        self.punteggio.Show(False)
        self.punteggio.SetBackgroundColour(wxColour(255, 191, 255))
        self.punteggio.SetFont(wxFont(12, wxSWISS, wxNORMAL, wxBOLD, False,
              u'Comic Sans MS'))
        self.punteggio.SetForegroundColour(wxColour(202, 0, 202))
        self.punteggio.SetThemeEnabled(True)
        self.punteggio.Enable(False)
        self.punteggio.SetAutoLayout(True)
        EVT_INT(self.punteggio, wxID_WXFRAME1PUNTEGGIO, self.OnPunteggioInt)

####altro taglio     
       


    def OnBt1Button(self, event):
        self.puntrisp = self.numrisp.GetValue() + 1
        self.numrisp.SetValue(self.numrisp.GetValue()+4)
        self.ladomanda = self.numerodomanda.GetValue()+1
        self.punteggioframe1 = self.punteggioframe1 + 
risposte[self.puntrisp]
        self.punteggio.SetValue(self.punteggioframe1)
        self.bt1.SetLabel(risposte[self.numrisp.GetValue()])
   
        if self.ladomanda < numerodelledomande:
            self.testoStatico2.SetLabel(domande[self.ladomanda])           
            self.numerodomanda.SetValue(self.numerodomanda.GetValue()+1)
        else:
            self.testoStatico2.SetLabel('Gioco finito')
            self.bt1.Show(False)
            self.bt2.Show(False)
            self.bt3.Show(True)
       
        self.numrispt2 = self.numrisp.GetValue()+2
        self.bt2.SetLabel(risposte[self.numrispt2])
        self.testopunteggio.SetLabel('Il tuo punteggio attuale \xe8: '+ 
str(self.punteggioframe1) + ' Punti')
       
#####altro taglio
   
    def __init__(self, parent):
        self._init_ctrls(parent)
        self.punteggioframe1 = 0

-- 
Topomorto... per una sentenza sbagliata   :'(
Topomorto dice NO alla pena di morte... soprattutto la sua 



More information about the Python mailing list