Доброе время суток , передаю в поток объект и создаю в нем клиента QTcpSocket, на отправку работает.
Ни как не получается подписаться на readyRead() , насколько понимаю связанно это с типом объекта, как быть ?
Вызов:
QThread *socketThread = new QThread();
socketTcpIp *socketObj = new socketTcpIp();
socketObj->moveToThread(socketThread);
connect(socketThread, &QThread::started, socketObj, &socketTcpIp::init);
socketThread->start()
H файл
#ifndef THREADIPCLIENT_H
#define THREADIPCLIENT_H
#include <QObject>
#include <QTcpSocket>
class socketTcpIp : public QObject
{
Q_OBJECT
protected:
virtual void statstateChanged();
virtual void readyRead();
private:
QString clientName;
public:
QTcpSocket* socket = 0;
public slots:
void init();
};
#endif // THREADIPCLIENT_H
cpp файл
socketTcpIp::socketTcpIp(QObject *parent) : QObject(parent)
{
}
void socketTcpIp::init()
{
socket = new QTcpSocket(this);
}
void socketTcpIp::readyRead()
{
qDebug() << "ОК";
}
пробовал так
connect(socket,SIGNAL(readyRead()),this,SLOT(ready_Read()));
вызывают такую ошибку
error: called object type 'socketTcpIp:: is not a function or function pointer