LINUX.ORG.RU

Qwt 6.0.0 - Qt виджеты для технических приложений

 , ,


0

2

15 апреля 2011 года отметился выпуском версии 6.0.0 проект Qwt - библиотека, содержащая разнообразные компоненты графического интерфейса пользователя и вспомогательные классы, весьма удобные и полезные для программ с технической направленностью, базирующихся на Qt.

Библиотека содержит компоненты и классы для следующих построений:

Работа над Qwt была начата ещё в апреле 1997 года, через пять лет после стартового релиза Qt, Джозефом Вилгеном (Josef Wilgen) и Уве Раттманом (Uwe Rathmann), последний является главным мейнтейнером проекта по сей день.

Необходимо также упомянуть о существовании ряда родственных Qwt проектов: QwtPolar, QwtPlot3D, QtiPlot.

Qwt рапространяется на условиях особой лицензии, Qwt License, Version 1.0, по сути представляющей собой LGPL с тремя исключениями, касающимися виджетов, производных от Qwt, статической линковки, а также сопровождения приложений, использующих Qwt, копией лицензии Qwt.

Qwt 6.0.0 совместима с Qt версии не ниже 4.4.

Qwt распространяется разработчиками исключительно в исходных кодах, содержащих примеры использования.
Бинарные пакеты должны быть доступны в репозитарии вашего дистрибутива.

>>> Исходные коды

>>> Официальное руководство пользователя

>>> Страница проекта на sourceforge.net

То что в примерах, это всё, на что способна библиотека? Или нет? А то негусто получается.

dinn ★★★★★ ()
Ответ на: комментарий от dinn

То что в примерах, это всё..?

Описание чуть более сотни различных классов (точки в различных СК, линии, сплайны, увеличение, легенды, упомянутые спектро-, гисто-, изограммы, элементы управления и др.) занимает более 600 страниц, открой руководство и посмотри.

adriano32 ★★★ ()
Ответ на: комментарий от adriano32

Только вот в документации не показано, как это будет выглядеть на деле. Например у mathgl все основные графические возможность представлены наглядно, а тут только неизвестные 600 страниц и несколько убогих примеров.

dinn ★★★★★ ()
Ответ на: комментарий от dinn

Тебя кто-то заставляет пользоваться? Не нравится? Не пробовал? Так, будь добр, оставь своё профессиональное мнение от беглого взгляда на скриншоты при себе.

adriano32 ★★★ ()
Ответ на: комментарий от adriano32

Какой-бы хорошей не была библиотека, без нормальной документации она бесполезна.

dinn ★★★★★ ()

Хорошая библиотека, использовал несколько раз.

А чейнджлог с 5ой ветки есть какой-нибудь? Не нашел на сайте.

anonymous ()
Ответ на: комментарий от dinn

Тогда по-твоему выходит, что man, info итп - самая убогая документация на свете, так как в ней нет картинок/скриншотов того, что получится после выполнения команд в ней описанных :)

adriano32 ★★★ ()
Ответ на: комментарий от adriano32

man обычно используется для программ без графического интерфейса. А вот как можно использовать виджеты и графики, не зная как будет выглядеть результат, я слабо представляю.

dinn ★★★★★ ()
Ответ на: комментарий от adriano32

Ну если говорить серьёзно, то многие маны написаны даже без текстовых примеров, а ключи описаны таким образом, что приходится сидеть и ковыряться, пытаясь понять, как конкретно задаются параметры.

В общем и целом, dinn прав: документация документацией, но на сайте должны быть очевидные, броские примеры, чтобы сразу хотелось пользоваться.

AP ★★★★★ ()
Ответ на: комментарий от dinn

man imagemagick
man gnuplot

>>как будет выглядеть результат

Попробуй же :)

adriano32 ★★★ ()
Ответ на: комментарий от adriano32

>man imagemagick

man gnuplot


На счёт imagemagic я не знаю, а вот у gnuplot есть замечательная галерея возможностей http://gnuplot.info/screenshots/index.html#demos .

Попробуй же :)

Вот в этом и проблема, чтобы понять подойдёт ли библиотека и есть ли смысл изучать её документацию (тем более если там больше 600 страниц), нужно изучить эту документацию, написать примеры и посмотреть результат их работы.

dinn ★★★★★ ()
Ответ на: комментарий от AP

на сайте должны быть очевидные, броские примеры, чтобы сразу хотелось пользоваться.

Наверное, я не настолько гурман. Мне было достаточно перечня на оффсайте и скриншотов.
А скачав тарбол ещё и удостоверился в наличии и количестве примеров:[code=bash]$ cd qwt-6.0.0/examples/

$ ls -F bode/ dials/ friedberg/ radio/ sinusplot/ svgmap/ cpuplot/ event_filter/ navigation/ rasterview/ sliders/ sysinfo/ curvdemo1/ examples.pri oscilloscope/ realtime/ spectrogram/ tvplot/ curvdemo2/ examples.pro plotmatrix/ refreshtest/ stylesheets/Думаю для «попялиться» их более чем достаточно.

Вопрос где это делать - дома или на оффсайте? Я предпочитаю дома.

adriano32 ★★★ ()
Ответ на: комментарий от adriano32

>Мне было достаточно перечня на оффсайте и скриншотов.
Поехали:

http://qwt.sourceforge.net/sinus.png
Почему линии ломаные? (потенциальный пользователь делает вывод, что библиотека хреновая)
http://qwt.sourceforge.net/curves.png
Почему нет сглаживания линий? Что с осями координат? (потенциальный пользователь делает вывод, что библиотека хреновая)
http://qwt.sourceforge.net/spectrogram1.png
Что с палитрой спектрограммы (это же ужас!), можно ли ещё легко настраивать? (потенциальный пользователь делает вывод, что библиотека хреновая)
http://qwt.sourceforge.net/spectrogram3.png
Это просто страх и ужас. (потенциальный пользователь делает вывод, что библиотека совсем хреновая)
http://qwt.sourceforge.net/histogramscreenshots.html
О эксель, ты мой эксель (ну или Calc из чего-то там офис). (потенциальный пользователь приходит в ужас и окончательно раздумывает использовать эту библиотеку)

dinn ★★★★★ ()
Ответ на: комментарий от dinn

Забыл сказать про отсутствие упоминания (или вообще отсутствие?) о трёхмерной графике, векторных полях и многом другом, с отображением чего всегда возникает много проблем.

dinn ★★★★★ ()

Всё-таки решил сделать новость? Ну и правильно. Я про эту библиотеку узнал на сайте SapecNG.

ramon13666 ★★★ ()
Ответ на: комментарий от dinn

Едем

Видимо вы тот ещё Ъ: пишите на форте, проектируете в Сименс NX, по ссылкам ходите редко, ОП читаете выборочно... )

Qwt provides 2D plot widget...



Какие тут трёхмёрные графики и векторные поля? Для этого QwtPlot3D отдельно пилится вон и о нём речи не идёт сейчас.

>>Почему линии ломаные

Потому что пиксель прямоугольный

>>Почему нет сглаживания линий?

Второй и пятый образцы имеют идеальное на мой взгляд сглаживание.
И для визуализации дискретных данных не всегда оно нужно.

>>Что с осями координат?

А они должны были быть на том скрине? По мне так на примерах линий и отметок они там ни к чему.

>>Что с палитрой спектрограммы

На вкус и на цвет, знаете ли...

>>О эксель, ты мой эксель

Продолжайте юзать OLE в седьмом делфи.

Я всё не пойму: что вам не нравится? Что есть альтернатива? Что можно попробовать, сравнить и выбрать то, что лучше подходит для конретной задачи?

adriano32 ★★★ ()
Ответ на: Едем от adriano32

>Я всё не пойму: что вам не нравится? Что есть альтернатива?
Как раз наоборот, альтернативы нет.

dinn ★★★★★ ()

Пользовался одно время qwt для построения плоских графиков, итоговые ощущения строго отрицательные. В документации многое освещалось очень скудно, приходилось дополнительно гуглить и эксперементировать. Сам Qt тоже грешит поверхностным описанием API и механизмов, что лежат за ним, но в Qwt ИМХО дела обстоят куда более печально.

Но с этим я еще был готов мириться. Больше всего раздражало, что графики выглядили как не от мира сего, будто они нарисованы где-то в 95-ой винде. Это касается и стилей рисования осей, линий, выделялок, легенды, фонов. Что-то удавалось подкрутить во вменяемый вид, но в основном всегда оставалось ощущение, что вокруг красивая, свистящая и пердящая кнопочками, менюшечками и рюшечками программа, а внутри вырвигалзное чудовище с графиками. Может быть я этот момент просто не осилил, хз.

Но при всем при этом мне понравилась общая идея архитектуры Qwt. Когда через месяц ковыряния в нем и его потрохах я решил, что проще написать свой маленький велосипедик, позаимствовал некоторые идеи из Qwt. Все мои приключения были с версией 5.2 вроде бы.

staseg ★★★★★ ()
Ответ на: комментарий от adriano32

>И чем надо пользоваться по-вашему?
Лучше gnuplot и возможно mathgl пока ничего нет, несмотря на все их недостатки.

dinn ★★★★★ ()
Ответ на: комментарий от dinn

> Лучше gnuplot и возможно mathgl пока ничего нет, несмотря на все их недостатки.

3D в gnuplot очень уж тормозное.

tailgunner ★★★★★ ()
Ответ на: комментарий от tailgunner

>3D в gnuplot очень уж тормозное.
На этот случай и есть mathgl

dinn ★★★★★ ()
Ответ на: комментарий от dinn

> потенциальный пользователь делает вывод, что библиотека хреновая

Аналитик ЛОР-а делает вывод что dinn банальный тролль.

Rodegast ★★★★★ ()

В тред скромно заглядывает matplotlib.

pevzi ★★★★★ ()
Ответ на: Едем от adriano32

>> Почему линии ломаные

Потому что пиксель прямоугольный


Ты, вроде, не дурак, но пишешь полную херню. На http://qwt.sourceforge.net/sinus.png явно видно, что библиотека пытается построить кривую из небольшого числа прямых отрезков. Мы, вроде, не в середине 80-х живём.

AP ★★★★★ ()

А кто-нибудь знает, что быстрее будет рисовать это — mathgl или qwt? При, скажем, сетке 1000x1000.

Obey-Kun ★★★★★ ()
Ответ на: комментарий от staseg

Уговорил, изначально думал о том, чтобы в своей софтине рисовать простые графики в qwt и сложные в mathgl, но по ходу, всё буду рисовать в mathgl.

Obey-Kun ★★★★★ ()
Ответ на: комментарий от adriano32

>Тогда по-твоему выходит, что man, info итп - самая убогая документация на свете, так как в ней нет картинок/скриншотов того, что получится после выполнения команд в ней описанных

Бинго.

d_a ★★★★★ ()

qwt в свое время порадовал тем что он Qt - есть интеграция с сигналами и слотами.
благодаря этому можно сделать например, чтобы вершины гистограммы были draggable и при этом в реалтайме правились данные модели.

VladimirMalyk ★★★★★ ()

Qwt действительно в чем-то вырвиглазна, но пользоваться ей достаточно удобно.

ApostolPetr ()
Ответ на: комментарий от ApostolPetr

на счет вырвиглазности. дефолтные так себе, но на скок помню там можно кисти и палитры настраивать в весьма широких пределах

VladimirMalyk ★★★★★ ()

Интересно

Стоит попробовать.

Merl1n ()
Ответ на: комментарий от AP

Ты, вроде, не дурак[
спс

>>явно видно, что библиотека пытается построить кривую из небольшого числа прямых отрезков. Мы, вроде, не в середине 80-х живём.

В examples есть sinusplot.cpp к этому скрину. Cинус и косинус строится там без всяких ухищрений просто по 100 парам точек.

Скажи, пожалуйста, что ты хочешь видеть на графике построенному по 100 сэмплам в интервалах между точками?

Сплайн? Есть сплайновые классы и методы (QwtSpline).

Но согласитесь, ведь не всегда это сглаживание так необходимо.

Если я снял (с АЦП например) N отсчётов и я знаю, что между этими отсчётами значение сигнала я достоверно знать не могу, зачем создавать иллюзорность того, что там он красиво и плавно переходит от точки к точке? Для каких-то задач это лишнее.
Но безусловно есть ряд задач, для которых это просто необходимо. Разработчик для таких задач возьмёт что-то другое.

На моей кафедре такое в Delphi на канвасе рисуют до сих пор, причём я говорю о преподах, пишущих ГУИ к стендам.

Так что ИМХО сабж свою нишу имеет, пусть это и поделки уровня лабораторок или курсачей, в которые каким-то макаром вклинилось Qt.

adriano32 ★★★ ()

Так список изменений где???

GladAlex ★★★★★ ()
Ответ на: комментарий от dinn

Какой-бы хорошей не была библиотека, без нормальной документации она бесполезна.

да, ты прав. Бесполезна. Забудь про нее

whiiteliites ()
Ответ на: комментарий от GladAlex

В архиве нашёл, можно было бы и выложить в новости:

Release 6.0
===================

Changes
-------
1) Qt3 support dropped
2) QwtPlot layout/render code ported from int to double
Exported/printed documents in scalable formats like SVG or PDF
are 100% scalable now.
3) Template base classes introduced for curve and curve data
to be reusable in all plot items displaying series of samples.
4) New plot items
- QwtPlotHistogram
- QwtPlotIntervalCurve ( error bars or displaying the area between 2 curves )
- QwtPlotSpectroCurve ( mapping the z value to a color )
5) Raster items
- QwtMatrixRasterData introduced
- More accurate rendering
- Several API changes
- Thread support for rendering spectrograms
6) QwtPlot::print moved to QwtPlotRenderer
7) Other new classes
QwtColumnSymbol
QwtDoublePoint3D
QwtIntervalSymbol
QwtPlotDirectPainter
QwtSamplingThread
QwtSystemClock
8) QwtPicker and friends reorganized,
QwtPickerTrackerMachine added for displaying a rubberband for
mouse moves. Enter/Leave added to events, that are handled
by the picker machines.
9) QwtScaleWidget::LayoutFlag added
Introduced to control the direction of vertical axis titles.
10)QwtWeedingCurveFitter added
QwtWeedingCurveFitter is an implementation of the Douglas/Peuker
algorithm, that can be used to reduce the number of curve points.
It can be very useful to improve the performance of painting
curves of many lines ( f.e. by implementing different level of details ).
11)Legend code update for representing different pixmaps for different
types of plot items.
12)Copy operators removed, using pointers instead
13)QwtPolarPoint from qwtpolar added
14)QwtThermo
Optional QwtColorMaps added
15)Interfaces and code of all sliders/dials cleaned up.
QApplication::globalStrut(), styled backgrounds ...

GladAlex ★★★★★ ()

Список изменений

ChangeLog в тарболе с исходниками
Для уважаемых Ъ

Выпуск 6.0
1) Qt3 support dropped
2) QwtPlot layout/render code ported from int to double
Exported/printed documents in scalable formats like SVG or PDF are 100% scalable now.
3) Template base classes introduced for curve and curve data to be reusable in all plot items displaying series of samples.
4) New plot items

  • QwtPlotHistogram
  • QwtPlotIntervalCurve ( error bars or displaying the area between 2 curves )
  • QwtPlotSpectroCurve ( mapping the z value to a color )

5) Raster items

  • QwtMatrixRasterData introduced
  • More accurate rendering
  • Several API changes
  • Thread support for rendering spectrograms

6) QwtPlot::print moved to QwtPlotRenderer
7) Other new classes

  • QwtColumnSymbol
  • QwtDoublePoint3D
  • QwtIntervalSymbol
  • QwtPlotDirectPainter
  • QwtSamplingThread
  • QwtSystemClock

8) QwtPicker and friends reorganized, QwtPickerTrackerMachine added for displaying a rubberband for mouse moves.
Enter/Leave added to events, that are handled by the picker machines.
9) QwtScaleWidget::LayoutFlag added.
Introduced to control the direction of vertical axis titles.
10)QwtWeedingCurveFitter added.
QwtWeedingCurveFitter is an implementation of the Douglas/Peuker algorithm, that can be used to reduce the number of curve points.
It can be very useful to improve the performance of painting curves of many lines ( f.e. by implementing different level of details ).
11)Legend code update for representing different pixmaps for different types of plot items.
12)Copy operators removed, using pointers instead
13)QwtPolarPoint from qwtpolar added
14)QwtThermo. Optional QwtColorMaps added
15)Interfaces and code of all sliders/dials cleaned up.
QApplication::globalStrut(), styled backgrounds ...

adriano32 ★★★ ()

Отлично. Как раз пишу сейчас модель. Будет необходимость визуализировать семейство траекторий. Эта библиотека потянет отрисовку 2000 траекторий по 6000 точек? В идеале, с анимацией.

Есть ли алгоритмы оптимизации отрисовки, или массив точек надо будет заранее прореживать?

Какие есть альтернативы и чем они принципиально отличаются?

ZhAN ★★ ()
Ответ на: комментарий от ZhAN

Тут уже многих упомянули:

Судя по отзывам и тому как активно меня закидали кака^W камнями, выбор не в пользу Qwt.

Хотя

10)QwtWeedingCurveFitter added.
QwtWeedingCurveFitter is an implementation of the Douglas/Peuker algorithm, that can be used to reduce the number of curve points. It can be very useful to improve the performance of painting curves of many lines ( f.e. by implementing different level of details ).

это звучит вполне привлекательно.

adriano32 ★★★ ()
Ответ на: комментарий от adriano32

если просто графики, то альтернативы сгодятся. а вот например живой зум, таскание вершин и проч - пожалуй только qwt

VladimirMalyk ★★★★★ ()
Ответ на: комментарий от adriano32

>что man, info итп - самая убогая документация на свете

Таки-да, убогая документация, ибо справочник по ключам - первая, и справочник по возможностям - вторая. Близкая аналогия - таблицы логарифмов как документация к алгебре.

anonymous ()
Ответ на: комментарий от ZhAN

MathGL тебе в руки. Qwt без проблем отрисует, но анимация врядли будет нормальна.

CBP ()

>http://qwt.sourceforge.net/sinus.png

Я не знаю насчет остального, но синусоида - говно. С отрисовкой у библиотеки очевидные проблемы.

anonymous ()
Ответ на: комментарий от AP

man - это справочная информация, и описание там формализованно, чтобы в минимум объема впихнуть максимум информации. А для примеров есть книжки типа «Освой Unix shell за 24 часа»

anonymous ()
Ответ на: комментарий от dinn

Почему линии ломаные?
Почему нет сглаживания линий?
Это просто страх и ужас.
О эксель, ты мой эксель

молодой человек, вы ошиблись топиком. Это библиотека для визуализации технических данных, а не для построения гламурных диаграмм для презентаций.

nu11 ★★★★★ ()
Ответ на: комментарий от nu11

>> http://qwt.sourceforge.net/sinus.png

Почему линии ломаные?

Это библиотека для визуализации технических данных


ну да - зачем правильно отрисовывать «технические данные»

aho ()
Ответ на: комментарий от aho

а как нужно правильно отрисовывать ломанную из 100 точек? :)

nu11 ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.