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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Многопоточность и вывод информации от клиентов  (Прочитано 2727 раз)
demaker
Птица говорун
*****
Offline Offline

Сообщений: 960


Просмотр профиля
« : Сентябрь 07, 2011, 17:10 »

Помогите понять Непонимающий
Есть многопоточный сервер.
По соединению с клиентом создается новый Tab, в котором есть textEdit и в нем нужно отобразить инфу, поступающую от клиента.
В серваке я делаю сигнал по окончанию считывания посылки и соответственно вывод инфы.

void EchoServer::incomingConnection(int socketDescriptor)
{
    EchoThread* thread = new EchoThread(socketDescriptor,this); // создаем отдельный поток
    connect(thread,SIGNAL(finished()),this,SLOT(removeThread()),Qt::DirectConnection);
    m_threads.append(thread);

    connect(thread,SIGNAL(receiveComplete(QString)),this,SIGNAL(signal_showByteArray(QString))); //!!!!!!!!!!!
    connect(thread,SIGNAL(idNewClient(QString)),this,SIGNAL(signal_newClient(QString)));
    emit signal_addTab();

    thread->start();
}

signal_addTab  связываю со слотом в котором происходит добавка Tab-а.

Но не могу понять как привязать инфу которая относится именно к этому Tab-у, потому что выводится все сплошняком.
Так как я хочу, чтобы каждый таб был адресован к новому подключению клиента.

Отдельно завел класс:

class miniTab: public QWidget
{
    Q_OBJECT

public:
    QTextEdit* txtEdit;
    QHBoxLayout* h_bLayout;

public:
    miniTab();

public slots:
    void showMessage(const QString );
};

Может нужно создавать в новом потоке подключения объект типа miniTab???
Или же в incomingConnection(...) по поступлению нового конекта???
КАК СДЕЛАТЬ Правильно??? Непонимающий Непонимающий Непонимающий
Записан
LisandreL
Птица говорун
*****
Offline Offline

Сообщений: 984


Надо улыбаться


Просмотр профиля
« Ответ #1 : Сентябрь 07, 2011, 19:00 »

EchoServer в основном потоке живёт? Тогда порождать новый таб в нём и receiveComplete с idNewClient конектить уже к табу, а не к this/
Записан
demaker
Птица говорун
*****
Offline Offline

Сообщений: 960


Просмотр профиля
« Ответ #2 : Сентябрь 08, 2011, 11:07 »

Ну а как быть с receiveComplete(QString ) если я высылаю этот сигнал из потока и затем связываю с сигналом signal_showByteArray(QString) в объекте класса echoServer чтобы затем отобразить на форме??? Я же хочу с каждого подключения в отдельном табе выводить данныепо этому подключениюю Улыбающийся
Записан
demaker
Птица говорун
*****
Offline Offline

Сообщений: 960


Просмотр профиля
« Ответ #3 : Сентябрь 08, 2011, 11:10 »

EchoServer  живет в основном потоке.
Потом по каждому подключению заводется свой поток класса типа EchoThread и т.д  Улыбающийся
Вот думаю как сделать help please Непонимающий Улыбающийся
Записан
demaker
Птица говорун
*****
Offline Offline

Сообщений: 960


Просмотр профиля
« Ответ #4 : Сентябрь 12, 2011, 08:20 »

Спасибо за помощь Улыбающийся все заработало
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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