2009-09-29 4 views
22

Мне нужно реализовать какой-либо сюжет, как that или that в моем приложении, это может быть даже нечто похожее.Создание участка в Qt

Я сделал поиск на веб-сайте Qt без каких-либо успехов, и я увидел пакет Qwt, но ничего подобного не было.

Любые идеи?

+0

Здесь [ответ] (https://stackoverflow.com/questions/7800460/how-do-you-plot-points-in-qt/7841265#7841265) с исходным кодом для построения точек в QGraphicsView очень легко (11 строк кода). Похоже, что это не изначально, но только потому, что Graphics View Framework намного мощнее, чем стандартный художник. – phyatt

ответ

24

Я настоятельно рекомендую Qwt.

Qwt - это зрелая, хорошо документированная библиотека, и, я думаю, это справедливо сказать, стандартное решение для реализации графиков и других виджетов и элементов управления в Qt.

Если вам нужны 3D-графики, попробуйте QwtPlot3D.

+1

Как насчет [QCustomPlot] (http://www.qcustomplot.com/)? Кажется, теперь это лучший вариант. – Isaac

+1

QCustomPlot позволяет использовать GPL или рекламу. Qwt использует лицензию LGPL. Это то, что вы должны учитывать, основываясь на проекте, над которым вы работаете. – rbaleksandar

2

Qt не поддерживает печать из коробки.

Наиболее простым решением является использование QGraphicsView. Просто сделайте свой сюжет, используя различные предметы.

Кроме этого, вы можете руководствоваться this thread. Он содержит пару указателей на построение фреймворков, но я не знаю, насколько они полезны или они все еще поддерживаются в Qt 4.x.

8

Я использую для этого Qwt. Фокус в том, чтобы использовать ступенчатую функцию (см. Последний пример этим link) и сдвинуть данные на 0,5, чтобы бары были центрированы на тики. Ниже приведен пример того, что вы можете использовать с альфа-смешиванием и сглаживанием: my histogram. Надеюсь, вы сделаете еще лучше ;-)

7

В качестве альтернативы Qwt вы также можете рассмотреть qt-plotting-widget, который может быть более простым вариантом.

+3

Это теперь называется QCustomPlot: http://www.qcustomplot.com – AstroFloyd

30

Я люблю QCustomPlot, который является библиотекой Qt C++. Он фокусируется на создании привлекательных 2D-графиков, графиков и диаграмм качества публикации, а также имеет высокую производительность для приложений визуализации в реальном времени. Вы можете получить его здесь: http://www.qcustomplot.com/

1

QCustomPlot действительно легко начать работу, и вы можете сделать множество картографических типов. Сказав это, по производительности это не так хорошо, как говорят другие люди, если вы намереваетесь строить крупные временные ряды сразу. Он внутренне использует QMap для хранения данных, что означает, что для каждой точки данных, которую вы вставляете или удаляете при заполнении, будет добавлено выделение/выпуск памяти для добавления точки данных к карте. См. this post для получения дополнительной информации.

Другое дело, мне не нравится то, что даже для простых участков он использует внутренне на структуру QCPData, которая хранит 6 двойных значений, когда вы обычно нужны два (x и y). То есть, он увеличивает объем памяти, необходимый для отображения временного ряда.

2

Qt 5.6 Теперь includesQt Диаграммы 2.1, который поддерживает гистограммы (а также другие виды 7).

+0

Доступен ли он в дистрибутиве с открытым исходным кодом? Кажется, я не могу использовать модуль «диаграмм». –

+1

@ Violet Giraffe - он доступен, но не включен в дистрибутив с открытым исходным кодом 5.6. («Пользователи с открытым исходным кодом могут создавать модуль из источников».) Для получения некоторой помощи при создании с открытым исходным кодом см. Эту тему: https://forum.qt.io/topic/66946/how-to-build-qt- чарты-2-1-на-окна-7 –

Смежные вопросы