![]() |
|
|
![]()
|
|
| uwannadie |
|
||||||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 175 Регистрация: 5.6.2009 Где: Крым, Керчь Репутация: нет Всего: 1 |
собственно вопрос:
имеется класс, надо получить значение свойства. использую плюсы совсем недавно, поэтому скорее всего что-то сделал не так. кусок кода: h файл
код
потом в основной проге использую так:
но данные не возвращаются. пробовал и так:
при этом в дебаг все нормально выводится Это сообщение отредактировал(а) uwannadie - 17.7.2014, 14:33 --------------------
|
||||||||
|
|||||||||
| Guinness |
|
||||||||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 310 Регистрация: 21.6.2009 Где: Зеленоград Репутация: 2 Всего: 10 |
Тему надо бы в раздел Qt.
Для начала код вида:
это по сути своей одно и тоже. Только в первом случае память выделяется на стеке, и по выходу из области видимости автоматически освобождается. Во втором случае память выделяется в куче и Вы работаете с указателем. Здесь автоматически ничего не удалится, и за выделенную память отвечаете Вы сами. В C++ есть обертки для указателей, облегчающие работу с ними - это std::shared_ptr, std::unique_ptr, для Qt есть QSharedPointer, QScopedPointer и т.д. Также в Qt есть одна особенность. Если для объекта, унаследованного от QObject, указать родителя(parent), то в случае удаления родителя удалится и этот объект. Теперь по поводу почему ничего не записывается в result. Проблема в том, что по вызову:
Происходит асинхронное подключение к серверу. Поэтому, когда Вы обращаетесь к result, там ещё ничего не записано. Вам нужно заменить вот эту строчку:
на
Тогда в случае, если будет изменяться результат, Ваш класс будет сообщать об этогм своим подписчикам посредством сигнала ResultChanged. Соответственно, Вам нужно написать класс обработчик этого сигнала, который бы каким либо образом реагировал на данный сигнал.
Ну и подключить его к сигналу от SocketClient с помощью connect. И имхо SocketClient не нужно наследовать от QWidget, лучше от QObject. А если нужно выводить результат в GUI, то лучше ProcessResult сделать наследником QWidget. |
||||||||||
|
|||||||||||
| uwannadie |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 175 Регистрация: 5.6.2009 Где: Крым, Керчь Репутация: нет Всего: 1 |
спасибо за подсказку, исправил чутка
--------------------
|
|||
|
||||
![]()
|
| Правила форума "С/С++: Кроссплатформенное программирование, QT/Gtk+/wxWidgets" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, Любитель. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |