QTcpServer应用程序中有一个关于Qt C++中的插槽和信号的问题。我不太熟悉插槽和信号的方法。所以...问题是服务器应用上的客户端套接字插槽根本没有被调用。我认为我使用连接功能与错误的参数。在Qt C++中QTcpServer应用程序中的插槽和信号
class CMyClient {
public:
CMyClient();
QTcpSocket* m_pClientSocket;
MainWindow* m_pWin;
public slots:
void onSocketReadyRead();
void onSocketConnected();
void onSocketDisconnected();
void onSocketDisplayError(QAbstractSocket::SocketError);
我在这里用连接功能:
void MainWindow::onNewConnection()
{
CMyClient* pClient = new CMyClient();
// set properties
pClient->m_pClientSocket = m_pServSocket->nextPendingConnection();
pClient->m_pWin = this;
// events from client side on server side
connect(pClient->m_pClientSocket, SIGNAL(readyRead()), SLOT(onSocketReadyRead()));
connect(pClient->m_pClientSocket, SIGNAL(connected()), SLOT(onSocketConnected()));
connect(pClient->m_pClientSocket, SIGNAL(disconnected()), SLOT(onSocketDisconnected()));
connect(pClient->m_pClientSocket, SIGNAL(error(QAbstractSocket::SocketError)), SLOT(onSocketDisplayError(QAbstractSocket::SocketError)));
... 但这些连接功能不正常工作。客户端正在连接,onNewConnection被调用,但来自客户端套接字的事件(插槽)不会出现(readyRead()等)。服务器能够发送消息给客户端。谢谢。
非常感谢。我知道新的东西。它的工作原理。我转移到了这种方式,但忘了将Q_OBJECT添加到我的课程中。 –
如果我的答案可以帮助您将其标记为正确。 – eyllanesc
@eyllanesc - 在C++类中声明以';' – dtech