1

嗨,希望有人可以帮助我,我正在编写一个小 gui,它将绘制通过 UDP 套接字发送的数据。我决定使用 PyQt 的 QUdpSocket 来实现这一点。我使用了示例代码(我用来测试我的服务器),然后剥离了 gui。

from PyQt4 import QtNetwork


class graphUDP(QtNetwork.QUdpSocket):


def __init__(self, parent=None):
    super(graphUDP, self).__init__(parent)

    self.udpSocket = QtNetwork.QUdpSocket(self)
    self.udpSocket.bind(8888)

    self.udpSocket.readyRead.connect(self.processPendingDatagrams)

    print "All ok line 20"

def processPendingDatagrams(self):
    print "line 23 All ok"

    while self.udpSocket.hasPendingDatagrams():
        datagram, host, port = self.udpSocket.readDatagram(self.udpSocket.pendingDatagramSize())

        print "All ok line 28"
        print datagram

if __name__ == '__main__':

import sys
graphRun = graphUDP()
graphRun

我放入了一些调试行以查看发生了什么,看起来类被实例化但信号和插槽未连接以触发函数。我已经超出了我的深度并且在圈子里跑来跑去有任何想法/指针吗?

谢谢

4

1 回答 1

1

为什么要扩展QUdpSocket,然后在你的构造函数中实例化一个新的QUdpSocket?这真的没有任何意义。

首先决定如何创建你的类以及如何实例化它。

除此之外,我看不出它为什么不起作用的任何问题。

此外,您在底部“主要”部分的对齐方式是错误的。通常 QT 要求您在使用任何其他 QT 类之前创建一个 QApplication。

于 2013-02-23T10:59:54.507 回答