On Sunday 28 October 2007 06:39:27 pm Ingmar Steen wrote: > 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_()
According to the documentation, a QTimer requires an eventloop, or its timeout never gets called. The documentation also indicates that QThread.exec needs to be called in order to enter the eventloop. Anyway, changing my example to use a.show() doesn't work, the thread's event loop is not started. I don't see any recent discussion on the list that seems relevent. Darren _______________________________________________ PyQt mailing list PyQt@riverbankcomputing.com http://www.riverbankcomputing.com/mailman/listinfo/pyqt