Название: Вопрос по Архитектуре Отправлено: linkr от Июнь 08, 2010, 21:32 собственно есть QMainWindow,QTCPServer,QThread
клиентские запросы выполняются в QThread , но чтобы показать, что к примеру произошло соединение приходиться добираться до QMainWindow, в котором лежит интерфейс, через QTCPServer, при помощи построения своих сигналов и слотов. Собственно как лучше организовать работу? какой паттерн подойдет? приложение похоже по архитектуре на example:threadfortuneserver Название: Re: Вопрос по Архитектуре Отправлено: ритт от Июнь 08, 2010, 23:29 ничего не понял...
Название: Re: Вопрос по Архитектуре Отправлено: linkr от Июнь 09, 2010, 00:05 ничего не понял... Код: class MainWindow : public QMainWindow Код: class Server : public QTcpServer Код: class FortuneThread : public QThread что бы догнать месседж от FortuneThread до MainWindow приходится 2 раза делать connect в Server и в MainWindow QObject::connect(thread,SIGNAL(messageTo(QString)),this,SLOT(message(QString)));//this - server QObject::connect(server,SIGNAL(messageTo(QString)),this,SLOT(message(QString)));//this - MainWindow гнать сигнал вот так void Server::message(QString mess) { qDebug(mess.toAscii()); emit messageTo(mess); } после получения в MainWindow выводим TextBrowser мне кажется глупо просто так делать,а как по другому не знаю,вопрос скорее теоретический,как лучше реализовать передачу объекта через лишний класс? хотя вот так клево все) QObject::connect(thread,SIGNAL(messageTo(QString)),this,SIGNAL(messageTo(QString))); все вопрос решен) передано напрямую QObject::connect(thread,SIGNAL(messageTo(QString)),this->parent(),SLOT(message(QString))); |