[PyQt] QudpSocket and QThread

emmanuel_mayssat at lynceantech.com emmanuel_mayssat at lynceantech.com
Tue Aug 23 19:12:31 BST 2011


Error: the self.udpSocket should stay!
self.udpSocket = QUdpSocket(self)
is what generated the QObject error
and needed to be changed to 
self.udpSocket = QUdpSocket()

Does anyone have a sample code with QUdpSocket in QThread ?

Regards,
--
E

On 09:58 Tue 23 Aug     , emmanuel_mayssat at lynceantech.com wrote:
> 
> Hello,
> 
> I am trying to put a QUdpSock et in a QThread
> Code is:
> class LUdpConnectionThread(QThread):
>     def __init__(self, parent=None):
>         super(LUdpConnectionThread,self).__init__(parent)
>         self.debug = (DEBUG & THREADS)
> 
>     @LInAndOut(DEBUG & THREADS)
>     def run(self):
>         '''
>         Note:  QObject: Cannot create children for a parent that is in a different thread.
>         was resolved because self.socket to socket (no self!) !
>         '''
>         if self.debug: print "UDP Server on %d" % UDP_PORT
>         udpSocket = QUdpSocket()
>         #self.udpSocket.bind(QHostAddress.LocalHost,UDP_PORT)
>         udpSocket.bind(QHostAddress("0.0.0.0"),UDP_PORT)
>         udpSocket.readyRead.connect(self.on_udpSocket_readyRead)
> 
>     @LInAndOut(DEBUG & THREADS)
>     def on_udpSocket_readyRead(self):
>         if self.debug: print 'toto'
> #        datagram, senderHost, senderPortNumber =
> self.udpSocket.readDatagram(self.udpSocket.pendingDatagramSize())
> 
> 
> I had to remove the SELF in self.udpSocket in run because of QObject error
> Q: How can I read my datagram in on_..._readyRead if I don't have a SELF.udpSocket?
> 
> Q: Maybe use waitForReadyRead method, but how to do that?
> I need to make sure I have received the entire datagram, etc.
> 
> Any help appreciated,
> 
> -- 
> Emmanuel
> _______________________________________________
> PyQt mailing list    PyQt at riverbankcomputing.com
> http://www.riverbankcomputing.com/mailman/listinfo/pyqt

-- 
Emmanuel


More information about the PyQt mailing list