信号槽绑定时出现未有匹配的connect()函数
生活随笔
收集整理的這篇文章主要介紹了
信号槽绑定时出现未有匹配的connect()函数
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
信號槽在使用的過程中,出現沒有找到匹配的connect()函數,在檢查參數無誤后,可能出現的原因便是,信號的重載,為此需要指定綁定的是那種參數的信號。
例如在spinbox的使用時,對于信號valueChanged()有兩個重載函數,綁定時沒有指出綁定的是哪一個信號,就會出現找不到匹配的connect()函數。解決方法有兩種:
QTcpSocket繼承自QAbstractSocket,而QAbstractSocket類中含有兩個error()函數,分別如下:
SocketError error() const;
void error(QAbstractSocket::SocketError);
當在編寫如下程序時出現編譯錯誤,因為編譯器無法識別到底是綁定的哪一個error。
上面的程序無法通過編譯,為了解決問題,可以采取如下方法:
1.利用函數指針,指明具體使用的是哪一種形參的函數。
2.使用宏SIGNAL()和SLOT()
connect(tcpClient,SIGNAL(error(QAbstractSocket::SocketError)),this,SLOT(displayError(QAbstractSocket::SocketError)));總結
以上是生活随笔為你收集整理的信号槽绑定时出现未有匹配的connect()函数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: qt的项目中单个文件加载样式表
- 下一篇: Qt实现界面的窗口的局部动态添加并布局