Hello All

i'm tring to learn how to use Qthreads inside my app, so i wrote this example :
(it print out the text from the lineEdit widget, at any "text-changes")


import sys
from PyQt4 import QtCore, QtGui
import time

class Gui(QtGui.QWidget):
        def __init__(self, parent=None):
                QtGui.QGroupBox.__init__(self, parent)
                self.gcenter = QtGui.QPushButton("X", self)
                self.textout = QtGui.QLineEdit("default")
                self.textout2 = QtGui.QLineEdit("")
                guiLayout = QtGui.QGridLayout()
                guiLayout.addWidget(self.gcenter,1,0)
                guiLayout.addWidget(self.textout,1,1)
                self.setLayout(guiLayout)
                self.thread = logJ()
                self.thread.start()
                self.connect(self.gcenter, QtCore.SIGNAL("clicked()"), 
self.thread.toggle)
                self.connect(self.textout, 
QtCore.SIGNAL("textChanged(QString)"), self.thread.setValue)
    
    
class logJ(QtCore.QThread):
    def __init__(self, parent = None):
        QtCore.QThread.__init__(self, parent)
        self.value = 0
        self.alive = 1
        self.running = 0
    
    
    def run(self):
        while self.alive:
            while self.running:
                try :
                    a = self.aggiorna()
                    #startj(0,0)
                    print a
                    time.sleep(1)
                except :
                    print 'exit from Joy mode'
    
    
    def toggle(self):
        if self.running:
            self.running = 0
        else :
            self.running = 1
    
    
    def stop(self):
        self.alive = 0
        self.running = 0
        self.wait()
    
    
    def setValue(self, value):
        self.value = value
    
    
    def aggiorna(self):
        newvalue = str(self.value)
        return newvalue


if __name__ == "__main__":
   app = QtGui.QApplication(sys.argv)
   gui = Gui()
   gui.show()
   sys.exit(app.exec_())



####################

as you can see, it start the thread using the value : 0

"self.value = 0"

what i need instead, is to start the thread using the "text" from 
"self.textout.text()"


have you any hints ?


thanks a lot for your preciouse help!


regards,
Massimo.

_______________________________________________
PyQt mailing list    PyQt@riverbankcomputing.com
http://www.riverbankcomputing.com/mailman/listinfo/pyqt

Reply via email to