使用Qt过程中遇到的问题和解决办法
目前使用Qt的版本为5.12.0
信号和槽
连接QTcpSocket
的error
信号时出错(2020-4-16)
- 连接代码:
connect(tcpSocket, &QTcpSocket::error, this, &FileSession::slotDealError);
// error定义
void error(QAbstractSocket::SocketError);
// slotDealError定义
void slotDealError(QAbstractSocket::SocketError socketError);
- 出现的错误
no matching function for call to ‘zsj::FileSession::connect(QTcpSocket*&, <unresolved overloaded function type>, zsj::FileSession*, void (zsj::FileSession::*)(QAbstractSocket::SocketError))’
connect(tcpSocket, &QTcpSocket::error, this, &FileSession::slotDealError);
- 解决办法:
- 使用
QOverload
connect(tcpSocket, QOverload<QAbstractSocket::SocketError>::of(
&QAbstractSocket::error),
this, &FileSession::slotDealError);
- 使用
SIGNAL
和SLOT
宏
connect(tcpSocket, SIGNAL(error(QAbstractSocket::SocketError)), this,
SLOT(slotDealError(QAbstractSocket::SocketError)));