День добрый!
Столкнулся с проблемой. Я рисую несколько графиков на одном 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*, но ничего не получилось.
Если кто сталкивался с подобной проблемой или знает как ее решить или мучается с такой же бедой, то давайте обсудим этот вопрос. Кто как его решал?