QTcpSocket和插槽信号的运行时错误

4

我正在编写一些代码来建立TCP套接字,但在尝试设置我要监听的信号时,出现了错误。

代码如下:

connection = new QTcpSocket(this);

connect(connection,SLOT(connected()),this,SIGNAL(onConnection()));
connect(connection,SLOT(readyRead()),this,SIGNAL(gotData()));
connect(connection,SLOT(disconnected()),this,SIGNAL(onConnection()));

我收到的错误信息是:
 Object::connect: Attempt to bind non-signal QTcpSocket::connected()
 Object::connect: Attempt to bind non-signal QTcpSocket::readyRead()
 Object::connect: Attempt to bind non-signal QTcpSocket::disconnected()

我找不到其他人遇到同样的问题。我想这可能只是我自己做错了什么小事情。我的程序中其他信号都在正常工作。


语法是connect(sender, receiver),不是反过来。信号先,然后是槽(或其他信号)。 - Frank Osterfeld
1个回答

6

你正在错误地使用QObject::connect方法!

你必须像这样使用connect方法:

connection = new QTcpSocket(this);

connect(connection,SIGNAL(connected()),this,SLOT(onConnection()));
connect(connection,SIGNAL(readyRead()),this,SLOT(gotData()));
connect(connection,SIGNAL(disconnected()),this,SLOT(onConnection()));

and for more information go here.


QObject::connect 不是这个问题的原因。 - kien bui

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接