On 07/01/2010 02:53 AM, Steve Castellotti wrote:
On Wed, 2010-06-30 at 18:19 +0100, Phil Thompson wrote:
self.timer = QtCore.QTimer()
self.timer.connect(self.timer, QtCore.SIGNAL("timeout()"),
self.sendData)
self.timer.start(1000) # 1 second
...but received an exception that "QTimer can only be used with
threads started with QThread" which leads me to believe I will need to
implement threading for my server (also I expected to need to send
"parent=self" when instantiating the QTimer object so I know I must be
doing something wrong).
QTimer.singleShot(1000, self.sendData)
...is the normal way of doing it.
Yes and thank you, that gets me closer to the style I was using
under Twisted, however, with my code looking like this:
self.timer = QtCore.QTimer.singleShot(1000, self.sendData)
I'm still getting this error:
QObject::startTimer: QTimer can only be used with threads started with
QThread
Comparing to an example I found online here:
http://www.rkblog.rk.edu.pl/w/p/qtimer-making-timers-pyqt4/
The main difference that I can see is that example is using
QApplication to start up, whereas I am only running from the console (no
Gui at this point).
That said, QApplication inherits from QCoreApplication, which inherits
from QObject. QThread also inherits form QObject, but there's nothing
obvious I see that would indicate QApplication inherits from QThread
directly. Is there some other component related to Gui applications
which are creating QThreads which I need to replicated?
I tried setting up my program to inherit from QtCore.QThread just to see
if that would cover it, but no joy.
Do I need to re-code my program to open each connection as distinct
objects in dedicated threads and perform the timers within those
objects, or again is there something simple and obvious which I am just
missing?
Cheers
Steve Castellotti
Hello,
take a look at
http://www.riverbankcomputing.co.uk/static/Docs/PyQt4
/html/qapplication.html#QApplication-2
QApplication.__init__ (self, list-of-str argv, bool GUIenabled)
Constructs an application object with argc command line arguments in
argv. If GUIenabled is true, a GUI application is constructed, otherwise
a non-GUI (console) application is created.
cheers,
Robin
_______________________________________________
PyQt mailing list [email protected]
http://www.riverbankcomputing.com/mailman/listinfo/pyqt