[Python] [PyQt] ho impallato python...

Gollum1 gollum1.smeagol1 a gmail.com
Mer 14 Ago 2013 15:01:38 CEST


Non riesco a capire dove stia l'errore...

praticamente in una finestra ho creato un tabWidget, nel primo tab ho
messo quattro QtLineEdit, mentre la seconda tab è disabilitata.

tutte le QtLineEdit quando generano l'evento editingFinished(),
richiamano la stessa funzione, che dovrebbe controllare che tutti i
campi siano compilati (mi basta che ci sia un carattere, non ho
bisogno di verificarne il contenuto), e poi attivare la seconda tab...

questo è il codice di questa funzione:

    def ChangeAnagrafe(self):

        if self.nominativo.text() == '':
            self.tabWidget.setTabEnabled(1,False)
            self.nominativo.setFocus()
            return
        else:
            self.matricola.setFocus()
        if self.matricola.text() == '':
            self.tabWidget.setTabEnabled(1,False)
            self.matricola.setFocus()
            return
        else:
            self.struttura.setFocus()
        if self.struttura.text() == '':
            self.tabWidget.setTabEnabled(1,False)
            self.struttura.setFocus()
            return
        else:
            self.settore.setFocus()
        if self.settore.text() == '':
            self.tabWidget.setTabEnabled(1,False)
            self.settore.setFocus()
            return

        self.tabWidget.setTabEnabled(1,True)

così scritta dovrebbe impedirmi di lasciare una QtLIneEdit se non è
stato inserito nulla, o se quello che è stato inserito viene
cancellato.

fino a che non ho inserito la parte del focus (ma solo la verifica che
fossero compilati, per poi attivare la seconda tab) tutto funzionava
bene...

con l'inserimento del focus quando inserisco qualcosa nel primo campo,
tutto bene, alla pressione del tasto return mi va sul secondo campo...

da questo momento in poi, se metto qualcosa, ottengo il seguente errore:

    if self.nominativo.text() == '':
RuntimeError: maximum recursion depth exceeded in comparison

perchè dovrebbe continuare a ciclare sulla comparazione del nominativo
fino a far crashare l'interprete? in cosa sto sbagliando?

Byez
-- 
Gollum1
Tesssssoro, dov'é il mio tessssoro...


Maggiori informazioni sulla lista Python