On 10/28/07, Darren Dale <[EMAIL PROTECTED]> wrote: > I am trying to understand how to run a second event loop using a qthread. The > Qt docs indicate this is possible, but I haven't found any examples. I have a > simple example that I think should work, but doesn't. When I run my thread's > exec_(), it blocks. The actual application I am writing calls the qApp's > exec_ before the thread's exec_, but even then the thread's exec_ blocks > further execution. Does anyone know how to do this? > > Thanks, > Darren > > > > from PyQt4 import QtGui, QtCore > import time > > class Dispatcher(QtCore.QThread): > > def __init__(self, parent=None): > QtCore.QThread.__init__(self, parent) > > self.timer = QtCore.QTimer(self) > self.connect(self.timer, > QtCore.SIGNAL("timeout()"), > self.update) > self.timer.start(20) > > def update(self): > self.emit(QtCore.SIGNAL('update(string)'), str(time.time())) > > app = QtGui.QApplication(['test']) > text = QtGui.QLabel('Hi') > a = Dispatcher() > text.connect(a, > QtCore.SIGNAL('update(str)'), > text, > QtCore.SLOT('setText(string)')) > > a.exec_() > > text.show() > app.exec_() > _______________________________________________ > PyQt mailing list PyQt@riverbankcomputing.com > http://www.riverbankcomputing.com/mailman/listinfo/pyqt >
This question has been answer really recently on this list. Instead of calling the thread object's exec_() function, call the thread object's start() function: a.start() instead of a.exec_() Ingmar _______________________________________________ PyQt mailing list PyQt@riverbankcomputing.com http://www.riverbankcomputing.com/mailman/listinfo/pyqt