[PyQt] QxtSignalWaiter port
Jason Hihn
jason at eyemaginations.com
Tue Jul 24 20:32:55 BST 2007
I was trying to get QxtSignalWaiter
(http://qtnode.net/wiki?title=QxtSignalWaiter) ported so I can use QHttp
with a synchronous process.
The problem I am having is wait2()'s while never ends before the timeout,
meaning self.ready is always false, so it waits for the entire duration.
My invocation:
self.w=SignalWaiter.QxtSignalWaiter(self.http, 'done(bool)')
self.http.get(getdata)
self.w.wait2(5000)
My implementation follows:
from PyQt4.Qt import *
class QxtSignalWaiter(QObject):
def __init__(self, sender, signal):
apply(QObject.__init__, (self, ) + ())
self.connect(sender, SIGNAL(signal), self,
SLOT('signalCaught'))
def wait1(self, sender, signal, msec):
'''Returns True if the signal was caught, returns
False if the wait timed out'''
w=QxtSignalWaiter(sender, signal)
return w.wait2(msec)
def wait2(self, msec):
''' Returns True if the signal was caught, returns
False if the wait timed out'''
if(msec < -1):
return False
if(msec != -1):
self.timerID = self.startTimer(msec)
self.ready = self.timeout = False
while(self.ready==False and self.timeout==False):
QCoreApplication.processEvents(QEventLoop.WaitForMoreEvents)
self.killTimer(self.timerID)
return self.ready or self.timeout
def signalCaught(self):
print 'signalCaught'
self.ready = True
def timerEvent(self, event):
self.killTimer(self.timerID)
self.timeout = True
---
Regards,
Jason Hihn
Director of Software Engineering
Eyemaginations, Inc.
600 Washington Ave, Suite #100
Towson, MD 21204
Domestic: 877.321.5481 ext. 8617
International: 410.321.5481 ext. 8617
Fax: 410.616.8657
jason at eyemaginations.com
www.eyemaginations.com
www.3d-eye.com
=================================================
The information transmitted within this email document or fax is intended
only for
the person(s) or entity to which it is specifically addressed and may
contain
confidential and/or privileged material of Eyemaginations. Any re-creation,
review,
distribution, retransmission, dissemination or other use of, or taking of
any action
in reliance upon, this information by persons or entities other than the
intended
parties is completely prohibited. If you have received this email in error,
please
contact the sender or author and permanently delete and destroy the email
from
any computer which houses its contents.
=================================================
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.riverbankcomputing.com/pipermail/pyqt/attachments/20070724/34eb70fb/attachment.html
More information about the PyQt
mailing list