Russian Qt Forum
Ноябрь 23, 2024, 03:52 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: QTcpSocket readyRead в потоке класса QObject  (Прочитано 1773 раз)
unduty
Новичок

Offline Offline

Сообщений: 11


Просмотр профиля
« : Декабрь 13, 2020, 16:46 »

Доброе время суток , передаю в поток объект и создаю в нем клиента 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
Записан
tux
Global Moderator
Бывалый
*****
Offline Offline

Сообщений: 404



Просмотр профиля
« Ответ #1 : Декабрь 13, 2020, 17:28 »

Ну, слота ready_Read действительно нет. Улыбающийся
Хотя, лучше использовать более новый способ связывания. Довольно удобный.
https://wiki.qt.io/New_Signal_Slot_Syntax
Записан

unduty
Новичок

Offline Offline

Сообщений: 11


Просмотр профиля
« Ответ #2 : Декабрь 13, 2020, 19:47 »

Спасибо, новый метод указал на ошибку подробно, все заработало.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.149 секунд. Запросов: 23.