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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Передача данных между классами  (Прочитано 5818 раз)
Edynchik
Гость
« : Июль 01, 2013, 10:00 »

Добрый день. Чую сейчас будут пинать, но все таки напишу о следующей проблеме. Есть у меня некий класс формы, также присутствую еще два класса : опросник порта и обработчик информации. Разнесено для того чтобы данными могли из нескольких классов опросников могли пользоваться неколько классов обработчиков. И вот произошла беда, класс опросник сложил инфу в некую переменную, а как засунуть ее в класс обработчик ума не приложу. В обработчике она должна забирать данные из класса-формы. В класс обработчик передаю класс формы как предок, но не могу получить доступ. Переменная точно публик. Спасибо, сильно не пинайте.
Записан
Old
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4350



Просмотр профиля
« Ответ #1 : Июль 01, 2013, 10:07 »

В Qt для этого есть хороший сигнально-слотовый механизм.
Записан
Bepec
Гость
« Ответ #2 : Июль 01, 2013, 10:14 »

Парочка вариантов:

1) Гетерами - создаём функцию, которая при вызове возвращает ваши данные в удобоваримом виде. Функция публичная, собственно надо знать лишь указатель на класс.

Сложность - нулевая.
Недостаток - путаница указателей классов между собой.

2) сигнал-слотовым механизмом. О нём написано много, суть - делаем сигнал, передающий данные и привязываем его к слоту.

Сложность - для новичка средне Показает язык
Недостаток - слоты работают медленнее чем прямой вызов функций.

3) сигнлтон. Класс, доступный всем и существующей в единичном экземляре. Позволяет получить доступ к переменным кому угодно, откуда угодно в вашей программе.

Сложность - средняя. (но много инфы Подмигивающий )
Недостаток - нужна синхронизация доступа.

4) делать класс - менеджер, руководящий процессом. Имеющий в себе указатели на все ваши основные классы и организующий общение их между собой при помощи прямых вызовов функций.

Сложность - легкая, но архитектуру надо продумать.
Недостаток - архитектура сначала кривая бывает Веселый

PS эк я выпендрился Веселый
Записан
Edynchik
Гость
« Ответ #3 : Июль 01, 2013, 10:34 »

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


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