![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
casper17 |
![]()
Сообщение
#1
|
Новичок Группа: Новичок Сообщений: 3 Регистрация: 17.1.2015 Пользователь №: 4319 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Пробую написать программу для отображения информации. Есть центральное устройство, которое принимает данные от других устройств(дом, баня, теплица, гараж) и посылает эти данные по COM порту. Программа считывает эти данные и отображает их.
![]() Слева попробовал сделать меню выбора устройства, под ним кнопка для добавления устройств. Остальную часть программы занимает QStackedWidget в котором будут отображаться информация с датчиков от выбранного устройства из меню слева. На данном этапе есть несколько вопросов: 1. Как можно реализовать так, что бы при добавления нового устройства, создавалось в QStackedWidget новое окно с уже оформленным интерфейсом для данного типа устройства своё(Надписи, данные и т.д.). В будущем хочется реализовать так что бы можно было самому выбирать, какие датчики отображать. Динамически добавлять виджеты и удалять. К примеру нажимаем кнопку добавить датчик и из меню выбираем доступные датчики для данного устройства. 2.Как лучше хранить данные принятые по COM порту? Я думаю хранить в структуре, а потом создавать список этих структур. Добавили новое устройство, для него создалась структура в которую будут заноситься данные. Как это реализовать я не знаю точно.. Подскажите советом как лучше сделать? Какие виджеты использовать, на что смотреть и куда копать? Думаю что правильнее будет связать как-то добавление устройств в меню с его ID. Потому что может быть несколько устройств одного типа(Теплица). |
|
|
Litkevich Yuriy |
![]()
Сообщение
#2
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
Напрашивается сделать класс описывающий и устройство и виджет для его управления.
Добавление устройства - создание экземпляра класса (объекта), отображение странички с его настройками вызовом функции класса widget(), которая создаст виджет со всем его содержимым и вернёт указатель. Ну а данные хранить в виде полей этого класса (вместо отдельной структуры. Если класс обозвать Device, то список устройств: QList<Device*> Наследник QObject, авдруг тебе в будущем сигналы и слоты понадобятся, чтобы тотально проект не пересобирать, лучше уж сразу.
Сообщение отредактировал Litkevich Yuriy - 19.1.2015, 20:48 |
|
|
casper17 |
![]()
Сообщение
#3
|
Новичок Группа: Новичок Сообщений: 3 Регистрация: 17.1.2015 Пользователь №: 4319 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Правильно ли я понимаю что для каждого типа устройства мы создаем свой класс(Дом, баня, гараж) и они будут храниться в своем списке. С помощью методов
мы записываем и считываем данные из/в
Цитата отображение странички с его настройками вызовом функции класса widget(), которая создаст виджет со всем его содержимым и вернёт указатель. Вот тут немножко я не понимаю. Мы в файле Device.cpp описываем эту функцию, создаем там слой форматирования, добавляем виджеты.. Про указатель можно по подробнее ![]() ![]() |
|
|
![]() ![]() ![]() |
![]() |
Текстовая версия | Сейчас: 16.2.2025, 14:28 |