Название: Работа с ui в другом классе Отправлено: justengineer от Апрель 02, 2020, 19:21 Всем здравствуйте!
Пишу клиент-серверное приложение (TCP\IP). Проект - приложение Qt Widgets. Для работы с сервером был создан отдельный класс Myserver : public QTcpServer. Но возникла трудность: при приеме сервером сообщения от клиента мне нужно это сообщение обработать определенным образом и вывести, например, в lineEdit. Не понимаю, как из класса Myserver подступиться к моему ui, который в MainWindow. Попыткой решения было создание on_dataInTextEdit() в MainWindow и последующий вызов его в Myserver в sockReady(), но не работает. Причем qDebug прописывает строку, а вот lineEdit так и остается пустым. Кусочки кода для наглядности: mainwindow.h Код: #ifndef MAINWINDOW_H myserver.h Код: #ifndef MYSERVER_H mainwindow.cpp Код: #include "mainwindow.h" myserver.cpp Код: #include "myserver.h" Если кто-нибудь знает, что не так, помогите, пожалуйста. Спасибо. Название: Re: Работа с ui в другом классе Отправлено: qate от Апрель 02, 2020, 20:27 Для работы с сервером был создан отдельный класс Myserver : public QTcpServer. и зачем наследоваться так ? делай Myserver* QTcpServer полем MainWindow подписывайся на события и обрабатывай смотри пример https://doc.qt.io/qt-5/qtnetwork-fortuneserver-example.html Название: Re: Работа с ui в другом классе Отправлено: justengineer от Апрель 03, 2020, 14:19 К сожалению, сделать все в разных классах - это одно из условий поставленной задачи...
Название: Re: Работа с ui в другом классе Отправлено: qate от Апрель 03, 2020, 15:06 тебе следует еще много изучить: "MainWindow *mw = new MainWindow();" в обработчике приема данных это лютый пиздец
Название: Re: Работа с ui в другом классе Отправлено: justengineer от Апрель 04, 2020, 16:21 Да, соглашусь с Вами. Ну, просто как вариант был...
Может, попробую сигнал-слот. Стыдно, но так не люблю теорию читать... Но без этого никак, конечно. |