0
我正在使用Qt 5.4并尝试从我的QTcpSocket
发出“已断开”信号时恢复接受新连接。所以我写的h和.cpp文件分别如下:使用QPointer和QObject ::与C++连接11
QPointer<QTcpServer> tcpServer; // in .h file
connect(tcpSocket, &QAbstractSocket::disconnected, [=](){
tcpServer->resumeAccepting(); // in .cpp file
});
正如你所看到的,我用QPointer
类tcpSocket
。使用上面的代码,我无法构建我的程序并收到“没有匹配的函数调用...”错误,而在没有QPointer
的情况下定义tcpSocket
时没有任何问题。
我应该如何解决这个问题?
亲爱@Marker R,连接以这种方式需要的TCPSocket和TCPSERVER既要简单的指针不是Qpointer。所以在这种情况下它不起作用。 – Reza
@thung感谢您的评论。这个对我有用。首先请将它写为对其他人的回答。第二个qt官方帮助说:“一个守护指针,QPointer,就像一个普通的C++指针T *,除了当被引用的对象被销毁时被自动设置为0(不同于普通的C++指针,它变成了”悬挂指针“在这种情况下)。“,我有很多信号/插槽连接没有使用QPointer ::数据为他们,他们工作正常(至少我认为: - |)。那么我是否应该纠正它们? –
Reza
@Reza你确定你没有使用旧的连接语法的工作连接?例如'connect(object,SIGNAL(objectSignal()),object,SLOT(objectSlot()));' – thuga