Russian Qt Forum

Qt => 2D и 3D графика => Тема начата: climber от Июль 01, 2011, 12:17



Название: Qwt. Несколько yAxis на QwtPlot
Отправлено: climber от Июль 01, 2011, 12:17
День добрый!

Столкнулся с проблемой. Я рисую несколько графиков на одном QwtPlot. Мне нужно отображать для каждой кривой свою ось Y. Эта ось должна распологаться не на canvas а в области QwtPlot axisWiddget(QwtPlot::yLeft). Пока все что удалось найти в интернете это рекомендуют использовать QwtPlotScaleItem таким вот образом:

Код:
setAxisScale( QwtPlot::yLeft, -1.0, 1.0 );
QwtPlotScaleItem * scale1 = new QwtPlotScaleItem( QwtScaleDraw::RightScale );
scale1->setBorderDistance( 30 );
scale1->setScaleDiv( axisScaleEngine( QwtPlot::yLeft)->divideScale(-1.0, 1.0, 5, 5) );
scale1->attach( this );


Но при таком раскладе получается что ось разместится на canvas а не в axisWidget(QwtPlot::yLeft). Поясню почему не устраивает такой вариант. Мне нужно строить до 12, возможно и больше графиков одновременно. Если размещать оси в канвасе то это будет не удобно, не красиво и не наглядно. Хочется, чтобы оси были слева от графика. Пока из соображений есть только вот что: axisWidget(QwtPlot::yLeft)->layout()->addWidget(QWidget *) таким образом могу добавлять любой виджет в axisWidget(QwtPlot::yLeft). Добавлял туда кнопки - все работает и отображается. Пытался привести QwtPlotScaleItem * scale1 = new QwtPlotScaleItem( QwtScaleDraw::RightScale ); к типу QWidget*, но ничего не получилось.

Если кто сталкивался с подобной проблемой или знает как ее решить или мучается с такой же бедой, то давайте обсудим этот вопрос. Кто как его решал?


Название: Re: Qwt. Несколько yAxis на QwtPlot
Отправлено: Ubuntu_linux от Июль 02, 2011, 16:41
 может посмотреть в сторону ява скрипт?


Название: Re: Qwt. Несколько yAxis на QwtPlot
Отправлено: climber от Июль 04, 2011, 14:21
Тут дело вот в чем. 1 - я не знаю яву. 2 - хочется решить эту проблему мощностями Qwt, поскольку эти оси добавляются, масштабируются, перемещаются из основного Qt-шного приложения, куда Qwt прилеплено в качестве рисовалки.


Название: Re: Qwt. Несколько yAxis на QwtPlot
Отправлено: Ubuntu_linux от Июль 14, 2011, 01:41
Тут дело вот в чем. 1 - я не знаю яву. 2 - хочется решить эту проблему мощностями Qwt, поскольку эти оси добавляются, масштабируются, перемещаются из основного Qt-шного приложения, куда Qwt прилеплено в качестве рисовалки.
Ну так можно у webkit загрузить страничку с графиками на jqplot причем в яваскрипт просче все это реализовать. И точно будет кросплатформенно, хоть на мобилке смотри :)


Название: Re: Qwt. Несколько yAxis на QwtPlot
Отправлено: climber от Июль 15, 2011, 10:37
Это очень большой промышленный проект, графики в котором строятся именно в QWT. Сейчас что то менять или переписывать не вижу смысла, поскольку задача эта не критична, а трудозатраты на переделывание слишком велики. Для меня проще саму библиотеку QWT заставить ставить оси там где надо =), чем осваивать яву.


Название: Re: Qwt. Несколько yAxis на QwtPlot
Отправлено: Dunkan от Февраль 12, 2019, 09:53
Это очень большой промышленный проект, графики в котором строятся именно в QWT. Сейчас что то менять или переписывать не вижу смысла, поскольку задача эта не критична, а трудозатраты на переделывание слишком велики. Для меня проще саму библиотеку QWT заставить ставить оси там где надо =), чем осваивать яву.

Добрый день! Как решили данный вопрос?


Название: Re: Qwt. Несколько yAxis на QwtPlot
Отправлено: kuzulis от Февраль 12, 2019, 11:27
У QWT в репозитории есть отдельный бранч 'multiaxes' где возможно добавить кучу осей на один график. Вот его и надо брать.


Название: Re: Qwt. Несколько yAxis на QwtPlot
Отправлено: Dunkan от Февраль 12, 2019, 12:31
У QWT в репозитории есть отдельный бранч 'multiaxes' где возможно добавить кучу осей на один график. Вот его и надо брать.
Благодарю! Буду пробовать  :)