problema con pyqt... Possibili ritardi?
« il: Maggio 20, 2010, 16:34 »
Salve.

Ho fatto una applicazione in python. C'è però un comportamento strano.
ecco lo pseudocidce del mio programma

#tutti i vari import

class GUI(QtGui.QWidget):
       def __init__(self, parent=None):
             QtGui.QWidget.__init__(self, parent)
             self.radiobutton = QtGui.QRadioButton(self)
             self.radiobutton.move(coordinata1, coordinata2)
             self.threadcheparte = calcolodati(self)
             while(True):
                       self.threadcheparte.start()
                       self.threadcheparte.wait()

class calcolodati(QtCore.QThread):
    def __init__(self,parent=None):
        QtCore.QThread.__init__(self,parent)

    def run(self):
             #calcoli matematici
            qb.radiobutton.setChecked(True)
             #semplice codice che va a calcolare dei valori numerici partendo dalla data che ès tampato in console con un print
             qb.radiobutton.setChecked(False)
             #time.sleep(10)


app = QtGui.QApplication(sys.argv)
qb = GUI()
qb.show()


Praticamente si vede che il thread lanciato deve andare a abilitare il tondino nel radiobutton, fare dei conti e poi spegnerlo.
Praticamente accende correttamente il tondino nel radiobutton, ma non lo spegne nonostante sia specificato nell'ultima istruzinoe. Viene spento in realtà appena è richiamato il thread.... Perchè? Perchè non lo fa subito?

Se ad esempio dopo qb.radiobutton.setChecked(False) metto un time.sleep(10 secondi) il tondino si spegne poco dopo 10 secondi cioè quando è ricreato il thread e non prima come in realtà sarebbe corretto... Come mai ho questo comportamento? Da notare che tutto funziona bene in effetti