Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets > [Qt] Как лучше всего рисовать графики?


Автор: Elfet 7.12.2009, 22:46
Всем привет!

Как в Qt-е лучше всего рисовать графики? 

Плюс мне нужно изменять размер области графика - как и такое можно реализовать?

Заранее спасибо!

Автор: SABROG 7.12.2009, 23:18
В Qt нет штатных средств для рисования графиков, поэтому народ в основном использует Qwt или собственные наработки, исходные коды которых можно найти на форуме crossplatform.ru

Автор: Elfet 7.12.2009, 23:32
SABROG, я пока знаю только два варианта как это можно сделать:
- самому рисовать в переопределении события
- В Graphics Framework.

Автор: quarz 8.12.2009, 00:07
Elfet, скажи какую функциональность ты хочешь получить в графиках, а мы тебе поможем с выбором реализации из тех что указал SABROG

Автор: Elfet 8.12.2009, 00:13
Мне нужно рисовать график во времени из постепенно получаемых данных. Так что-то в процессе масштаб графика должен меняться. 
Ещё так же вероятно окажется что график сильно колеблющийся. 
И нужна функциональность позволяющая определить значение в нужной точке.

Автор: quarz 8.12.2009, 03:38
Если только это, и ничего больше и при этом ты имел опыт работы с графикой в QT (я вот пока нет, но собираюсь) - то лучше пиши сам. С qwt дольше разбираться! =) Функционал типа авто масштаба шкалы, трассировки по кривой - написать не сложно.

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

Автор: ecspertiza 8.12.2009, 09:12
Вот зацени примерчик я его как то тут на форуме выкладывал, масштабирования нет ,но сам график рисуется из поступающих рандомом данных, может поможет чем, а масштабирование это чисто мат часть, там алгоритм придумать и все и докрутить smile

Автор: Elfet 8.12.2009, 12:34
ecspertiza, каждый раз перерисовывать придется при маштабировании и дёргать данные или хранить где-то их. Так что думаю воспользуюсь Graphics View Framework.
.

Автор: djamshud 8.12.2009, 12:59
На что велосипедисты только не идут, лишь бы не использовать Qwt. Там и разные виды графиков, и динамическое обновление, и масштабирование/прокрутка, и сглаживание, и емнип получение данных для конкретной точки графика. Но нет, вместо того, чтобы воспользоваться хорошим решением, расширить его под свои нужды и в крайнем случае пропатчить, мы сделаем все с нуля с преферансом и дамами.

Автор: maxxant 8.12.2009, 13:35
Цитата(Elfet @  7.12.2009,  22:46 Найти цитируемый пост)
Как в Qt-е лучше всего рисовать графики?


если нужно без наворотов и быстро, есть embedded-widgets от нокии, вот ссылка на пакет с исходниками и примерами:

http://qt.nokia.com/developer/files/embedded-widget-demos/qt-embedded-widgets-source-and-documentation

Там есть простой класс. Мне пригодился, когда нужно было в "реальном" времени несколько оценочных графиков отрисовывать с большой скоростью.

Если нужно с наворотами, то да qwt.


Автор: Elfet 8.12.2009, 15:02
djamshud, не хочу разбираться с библиотекой в которой мне нужна лишь часть. К тому же по комментарием к ней не очень продуманной и удобной.

Автор: djamshud 8.12.2009, 20:50
Elfet, а вы использовали хоть одну библиотекe на 100 процентов? Ну или хотя бы на 87.5? Даже ту же Qt?smile А библиотека, имхо, продумана и удобна. Ну это уже субъективщина пошла.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)