Форум программистов, компьютерный форум, киберфорум
C++ Qt
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.69/13: Рейтинг темы: голосов - 13, средняя оценка - 4.69
127 / 105 / 27
Регистрация: 25.02.2010
Сообщений: 451
1

Класс для хранения данных

15.01.2015, 09:45. Показов 2593. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброго времени суток.
Господа, прошу помощи в создании класса для хранения данных.
Поясню ситуацию.
Пишу программу, для работы с ком-портом. В самом простом варианте, это выглядит так. Приходит пакет данных, в котором указывается группа контроллеров (в числовом виде), и говорится что с контроллера под таким адресом считать значение lineEdit.
Есть xml файл, где хранятся все типы контроллеров (в текстовом виде), список контроллеров для указанного типа и у каждого контроллера свой адрес.
Есть виджет окна, в котором есть два QListWidget. В первом выбирается тип контроллеров (на данный момент в текстовом виде, обычный список), при клике на этот тип, из файла загружаются все контроллеры указанного типа. и так же выстраивается третья часть окна, где для каждого типа подгружаются свои вкладки. При клике по контроллеру, во вкладку общие записывается адрес. Как это выглядит визуально - прикреплю два файла.
Вся правая часть ( с вкладками) создаётся в куче и всегда мы к ней имеем доступ.
Достаточно запутано, но пока идей для оптимизации нет.
Теперь, что мне необходимо. По идее, все lineEdit'ы должны быть доступны всегда, хоть на чтение хоть на запись, чтобы в зависимости от команды из пакеты, я смогу считать\записать данные.
Не могу придумать, как связать каждый виджет с группой контроллеров, их адресами и данными.
То есть, проблему вижу так:
Пришел пакет, я побайтно его разбираю. Байт под номером 3 (для примера) содержит номер группы. Байт №4 команду чтение. Байт №5 - адрес контроллера. Байт №6 - считать данные какого либо lineEdit. На этом этапе, я уже должен обратиться к нужному мне виджету, и знать что считывать. Буду рад любой идее или совету.
Класс для хранения данных


Класс для хранения данных


Если что-то не понятно, готов ответить на любые вопросы.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.01.2015, 09:45
Ответы с готовыми решениями:

Разработка формата данных для хранения информации (текста и объектов)
Есть ли у кого примеры реализации данной программы на QT? Буду очень благодарен!

Реализуйте класс для хранения ФИО и номера телефона человека, класс для хранения даты рождения человека, а также класс для хранения ФИО и почтового ад
Реализуйте класс для хранения ФИО и номера телефона человека, класс для хранения даты рождения...

Реализовать класс для хранения данных
Вообще-м ,нужно реализовать класс для хранения данных ,например о товарах в магазинах(как пример...

Глобальный класс для хранения данных
Здравствуйте. Мне нужно каким-то образом хранить выбранные пользователем данные так, чтобы я мог...

3
1403 / 1260 / 262
Регистрация: 10.11.2013
Сообщений: 3,763
15.01.2015, 10:23 2
Лучший ответ Сообщение было отмечено Воротислав как решение

Решение

Цитата Сообщение от Воротислав Посмотреть сообщение
обратиться к нужному мне виджету
логику и интерфейс лучше разделять.

По этому проще забацать структуру которая будет все хранить (из lineedit). И при считывании данных из порта будет искать в ней. А она уже может быть какой угодно. QHash вам должен подойти.
1
127 / 105 / 27
Регистрация: 25.02.2010
Сообщений: 451
15.01.2015, 11:18  [ТС] 3
RazrFalcon, Если я правильно Вас понял, что мне нужно будет написать классы, для хранения данных на каждый тип контроллеров, а для каждого конкретного контроллера создавать объект класса. И в каждом классе хранить данные всех edit'ов. Правильно? И в получается, можно сделать у класса свойство, которое возвращает адрес. То есть, после получения команды, опрашиваю все объекты нужного класса, получая их адрес, после того как нашел нужный, изменяю в нём данные, и уже в методе испускаю сигнал. чтобы виджет обновил информацию. А как можно привязать класс (типа контроллеров) с группой контроллеров из протокола? Может так же хранить свойством и группу, а в методе разбора пакета через банальный свитч?
0
1403 / 1260 / 262
Регистрация: 10.11.2013
Сообщений: 3,763
15.01.2015, 11:31 4
Цитата Сообщение от Воротислав Посмотреть сообщение
А как можно привязать класс (типа контроллеров) с группой контроллеров из протокола?
Ну этим и должна заниматься программа. Как сделаете - так и будет работать. Вариантов множество.
1
15.01.2015, 11:31
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.01.2015, 11:31
Помогаю со студенческими работами здесь

Класс для хранения массива данных
Описать класс для хранения массива данных. Реализовать для него операцию индексации с контролем...

Класс для хранения паспортных данных человека
Нужно разработать класс для хранения паспортных данных человека. Чтобы были операции сопоставления...

Создайте класс для хранения данных о студенте
1. Создайте класс для хранения данных о студенте: фамилия, специальность, курс, успеваемость...

Для хранения данных о ноутбуках описать класс Notebook
Для хранения данных о ноутбуках описать класс Notebook, который содержит структуру struct DispRes...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru