Название: Как реализовать такое ТЗ, на картинке Отправлено: akimov0604 от Октябрь 05, 2015, 14:46 Есть следующее ТЗ. Нужно реализовать мониторинг датчиков с аккумуляторных батарей и выводить результат на пользовательский интерфейс, подскажите как лучше реализовать данную картинку на виджетах( какой контейнер виджетов применить для отображения? ). Если лучше делать на qml, подскажите с помощью каких элементов лучше реализовать?
Название: Re: Как реализовать такое ТЗ, на картинке Отправлено: Bepec от Октябрь 05, 2015, 14:49 Картинки вот нет, а так подсказали бы :D
Название: Re: Как реализовать такое ТЗ, на картинке Отправлено: akimov0604 от Октябрь 05, 2015, 15:04 Извиняюсь, картинку добавил.
Название: Re: Как реализовать такое ТЗ, на картинке Отправлено: Racheengel от Октябрь 05, 2015, 15:08 Ну, либо QTableWidget со своим делегатом, либо полностью свой виджет надо делать...
Название: Re: Как реализовать такое ТЗ, на картинке Отправлено: Bepec от Октябрь 05, 2015, 15:14 Скорее свой виджет на мой взгляд.
PS похоже на систему для СФС :) Название: Re: Как реализовать такое ТЗ, на картинке Отправлено: akimov0604 от Октябрь 05, 2015, 15:17 Имеется ввиду свой виджет, который будет контейнером для элементов, или виджет вся картинка, или вообще на html делать?
Название: Re: Как реализовать такое ТЗ, на картинке Отправлено: akimov0604 от Октябрь 05, 2015, 15:27 А что такое система СФС, может быть есть где-то пример реализации?
Название: Re: Как реализовать такое ТЗ, на картинке Отправлено: Bepec от Октябрь 05, 2015, 15:39 Система для Специального Фортификационного Сооружения, СФС в сокращении :D Хотя аккумуляторные комнаты есть много где :)
Название: Re: Как реализовать такое ТЗ, на картинке Отправлено: akimov0604 от Октябрь 05, 2015, 16:08 Допустим я хочу сделать контейнер с виджетами. Каждый виджет я буду заполнять картинкой и текстом с датчиков. Какие виджеты лучше использовать для отображения картинки и какой виджет использовать в качестве контейнера?
Название: Re: Как реализовать такое ТЗ, на картинке Отправлено: gil9red от Октябрь 05, 2015, 16:23 QGraphicsScene / QGraphicsView?
Название: Re: Как реализовать такое ТЗ, на картинке Отправлено: akimov0604 от Октябрь 05, 2015, 16:33 QGraphicsScene / QGraphicsView. Что использовать для виджета с картинкой, а что для контейнера? Можно поподробнее пожалуйста?
Название: Re: Как реализовать такое ТЗ, на картинке Отправлено: Igors от Октябрь 05, 2015, 16:41 Ну видимо данных тут с гулькин нос. Хоть тыща датчиков будет? А две? Вряд ли. Тогда что-нибудь "пожирнее", где можно покушать плюшек, напр QTableWidget или QTreeWidget. Может и без делегатов прокатит, а если и нет - в них ничего страшного.
Свой виджет с виджетами - ну как-то "не в духе", по смыслу это таблица. QGraphicsScene - ну наверное для фанатов этого класса :) Название: Re: Как реализовать такое ТЗ, на картинке Отправлено: gil9red от Октябрь 05, 2015, 16:42 QGraphicsScene и является контейнером, на него располагаете объекты -- текст, картинки, свои
Если так нужно, можно на элементе QGraphicsScene разместить другие элементы, и тогда он будет контейнером А QGraphicsView отображает то, что на сцене Название: Re: Как реализовать такое ТЗ, на картинке Отправлено: Racheengel от Октябрь 05, 2015, 17:13 Я бы сделал свой виджет для батарейки на основе QWidget.
А поскольку их кол-во произвольно, пихал бы их в QTableWidget. Можно, конечно, и QGraphicsScene использовать, но зачем, если все равно у батарейки будет своя отрисовка? Или нужен будет зум-тягание мышью-эффекты? Название: Re: Как реализовать такое ТЗ, на картинке Отправлено: Old от Октябрь 05, 2015, 17:15 Я бы сделал свой виджет для батарейки на основе QWidget. Тогда зачем виджет, если есть делегаты? :)А поскольку их кол-во произвольно, пихал бы их в QTableWidget. Название: Re: Как реализовать такое ТЗ, на картинке Отправлено: akimov0604 от Октябрь 05, 2015, 17:21 Про зум-тягание мышкой разговора не было, может будет нужно масштабирование всей картинки.
А как такой виджет сделать? Унаследоваться от класса QWidget и сделать указатель на картинку в нём? Там Картинка должна меняться в зависимости от показаний напряжения и температуры. Становиться жёлтой или красной при недопустимых нагревах или напряжении. И нужно поверх картинки разместить текст с данными, возможно ли это? Название: Re: Как реализовать такое ТЗ, на картинке Отправлено: Igors от Октябрь 05, 2015, 17:51 Про зум-тягание мышкой разговора не было, может будет нужно масштабирование всей картинки. Вы "кушайте" готовые классы, а не терзайтесь сомнениями. Пока ни с чем не знакомы - будете гадать пока не устанете. Нужны таблицы? Нужны. Есть в Qt таблицы? Есть. Чего ждем?А как такой виджет сделать? Унаследоваться от класса QWidget и сделать указатель на картинку в нём? Там Картинка должна меняться в зависимости от показаний напряжения и температуры. Становиться жёлтой или красной при недопустимых нагревах или напряжении. И нужно поверх картинки разместить текст с данными, возможно ли это? Название: Re: Как реализовать такое ТЗ, на картинке Отправлено: Racheengel от Октябрь 05, 2015, 18:23 Я бы сделал свой виджет для батарейки на основе QWidget. Тогда зачем виджет, если есть делегаты? :)А поскольку их кол-во произвольно, пихал бы их в QTableWidget. Ну, я оба варианта предложил, просто смотря как и где эту "батарейку" будут использовать... Если только в таблице - то и делегата хватит, но если ее еще куда-нибудь надо будет встроить, то лучше виджет, имхо. Название: Re: Как реализовать такое ТЗ, на картинке Отправлено: Racheengel от Октябрь 05, 2015, 18:25 Про зум-тягание мышкой разговора не было, может будет нужно масштабирование всей картинки. А как такой виджет сделать? Унаследоваться от класса QWidget и сделать указатель на картинку в нём? Там Картинка должна меняться в зависимости от показаний напряжения и температуры. Становиться жёлтой или красной при недопустимых нагревах или напряжении. И нужно поверх картинки разместить текст с данными, возможно ли это? Да. переопределяйте paintEvent() и рисуйте там что хотите и как хотите :) Если масштабирование - то тогда через сцену придется. Но это не избавляет вас от кастомной отрисовки :) |