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