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

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

Страниц: [1] 2   Вниз
  Печать  
Автор Тема: динамика графика  (Прочитано 6627 раз)
StatuS74
Гость
« : Сентябрь 22, 2011, 08:16 »

прошелся по форум не нашел ответ. как замутить динамическую обрисовку графика. то есть суть в том что бы я нажал на кнопку график строился по данных из файла которые приходят с програматора. статически сделал все работает. а как динамически не знаю ещё и с возможностью остановить рисование и выбрать другой график. подскажите если кто с этим сталкивался
Записан
StatuS74
Гость
« Ответ #1 : Сентябрь 22, 2011, 08:30 »

В голову приходит только создать клас для рисования от QTheard и уже там через сигналы и слоты перекидывать сцену. а при нажатии на другую кнопку убивать поток. и запускать  тот же поток но с новыми параметрами... есть ещё более логичные варианты ?
Записан
alexman
Гость
« Ответ #2 : Сентябрь 22, 2011, 09:42 »

По таймеру можно.
Записан
StatuS74
Гость
« Ответ #3 : Сентябрь 22, 2011, 10:03 »

в смысле ?
тут суть же например 1-й график отрисовывается. потом захотел посмотреть что со вторым выбрал второй отрисовывается глянул на пару секунд потом 3 потом опять 1 хочу посмотреть что накачал. по этому ограничивается временью мне кажется не логично
« Последнее редактирование: Сентябрь 22, 2011, 10:08 от StatuS74 » Записан
alexman
Гость
« Ответ #4 : Сентябрь 22, 2011, 10:39 »

Какова формулировка - такой и ответ. Не понял сути сразу Улыбающийся

Ну так можно же при выборе типа графика поменять контент в области?
Записан
StatuS74
Гость
« Ответ #5 : Сентябрь 22, 2011, 10:49 »

объесню более подробно.
есть 12 датчиков которые тестируются примерно 20-40 минут. тест заключается в обмене сообщениями. я из сообщения которое посылает тестируемый объект выдергиваю то что мне надо. и по этим данным строю график (данные записываю в фаил для каждого датчика). суть в том что есть 12 кнопок (соответственно кол-ву датчиков). я нажимаю на 1-ю кнопку рисуется  график так сказать в реальном времени. потом захотел я например глянуть что происходит с 7 датчиком нажимаю мне начинает отрисовка идти 7 датчика. и так произвольно могу выбирать датчики.
Записан
alexman
Гость
« Ответ #6 : Сентябрь 22, 2011, 12:58 »

Так в чем сложность то? Вы не знаете как рисовать? Или же не можете выбрать средтва для рисовки?
Записан
StatuS74
Гость
« Ответ #7 : Сентябрь 22, 2011, 13:21 »

я реализовал статическри рисование. мне не надо динамически. я не знаю как сделать так что бы он постоянно рисовал пока не нажата другая кнопка графика. вот в этом и проблема.
Рисую я на QGraphicsScene. потмо возвращаю ей и связываю с объектом на виджите GraphicView
« Последнее редактирование: Сентябрь 22, 2011, 13:22 от StatuS74 » Записан
alexman
Гость
« Ответ #8 : Сентябрь 22, 2011, 13:50 »

Опять размытая формулировка. Что значит
Цитировать
постоянно рисовал
?
Записан
StatuS74
Гость
« Ответ #9 : Сентябрь 22, 2011, 13:53 »

это значит что пока моя программа и тестируемый датчик работаю шла отрисовка на экране графика в реальном времени. у меня сейчас статическри рисуется. то есть нажал отрисовал сколько данных есть. потом опять нажал отпять отрисовалось.
Записан
alexman
Гость
« Ответ #10 : Сентябрь 22, 2011, 13:56 »

Сообщения же приходят от датчика через промежуток времени или когда данные изменились?
Записан
StatuS74
Гость
« Ответ #11 : Сентябрь 22, 2011, 14:00 »

ну промижуток времени зависит от количества датчиков. ну грубо говоря можно поставить прорисовку 1 раз в 5 секунд
Записан
_OLEGator_
Гость
« Ответ #12 : Сентябрь 22, 2011, 14:51 »

Если используешь QGraphicsScene, то по нормальному можно реализовать своего наследника от QGraphicsItem, который будет представлять из себя одну линию графика.
Соответственно тебе нужно 12 таких объектов. Показывать только необходимы элемент (QGraphicsItem::setVisible), у самого элемента реализовать функцию добавления следующей точки, в которой можно вызвать перерисовку сцены.

Вопросы?

Можно использовать Qwt, но я с ним не знаком.
« Последнее редактирование: Сентябрь 22, 2011, 14:56 от _OLEGator_ » Записан
alexman
Гость
« Ответ #13 : Сентябрь 22, 2011, 15:55 »

Например:
1. Хранишь переменную тип графика и меняешь значение при переключении.
2. В начале запускаешь таймер с timeout = 5сек.
3. По таймеру получаешь значения от нужного датчика и рисуешь (ну а рисовку можно по разному реализовать).
Записан
alexman
Гость
« Ответ #14 : Сентябрь 22, 2011, 15:56 »

Соответственно тебе нужно 12 таких объектов.
Если данные однообразные, то необязательно все 12 объектов реализовывать.
Записан
Страниц: [1] 2   Вверх
  Печать  
 
Перейти в:  


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