2
class SocketContainer {
private:
    QTcpSocket* m_sockets[10];
public:
    SocketContainer() {
        for(int i = 0; i < 10; i++)
            connect(m_sockets[i], SIGNAL(readyRead()), this, SLOT(onNewData()));
    }
private slots:
    onNewData();
}

我怎么知道发出readyRead了哪个套接字onNewData()

4

2 回答 2

2

您可以按照Kourosh的建议使用sender ,或者QSignalMapper可能更适合您的需求。

于 2013-07-03T12:47:10.547 回答
1

虽然已经回答了,但这里有一个片段:

QObject *sigsender=sender();
if (sigsender) {
    DEBUG << " signal call objn: " << sigsender->objectName() << " clasn: " << sigsender->metaObject()->className();
} else {
    DEBUG << " direct call";
}
于 2013-07-04T07:26:15.327 回答