Название: КАк выравнивать левые края нескольких QwtPlot Отправлено: dqrest от Декабрь 07, 2012, 09:53 Привет)у Вот сижу разбираюсь с Qwt(6.0.1). У меня есть такая вот проблема. Есть 2 qwtplot. Они лежат друг под другом. У первого значения оси У лежат в [0,1], а у второго [100,30000]. Поэтому левые края отрисовок QwtPlot не совпадают. Смотрел пример "plotmatrix", но там слишком большие навороты, поэтому трудно разобраться. Хочется понять саму суть, как их выравнивать.
Название: Re: КАк выравнивать левые края нескольких QwtPlot Отправлено: dqrest от Декабрь 07, 2012, 10:55 I have solved this problem without axisTitle. The decision is(I have taken it from "plotmatrix" example)
void PlotMatrix::alignVAxes(int col, int axis) { if ( axis != QwtPlot::yLeft && axis != QwtPlot::yRight ) return; int maxExtent = 0; for ( int row = 0; row < numRows(); row++ ) { QwtPlot *p = plot(row, col); if ( p ) { QwtScaleWidget *scaleWidget = p->axisWidget(axis); QwtScaleDraw *sd = scaleWidget->scaleDraw(); sd->setMinimumExtent(0); const int extent = sd->extent( QPen(Qt::black, scaleWidget->penWidth()), scaleWidget->font() ); if ( extent > maxExtent ) maxExtent = extent; } } for ( int row = 0; row < numRows(); row++ ) { QwtPlot *p = plot(row, col); if ( p ) { QwtScaleWidget *scaleWidget = p->axisWidget(axis); scaleWidget->scaleDraw()->setMinimumExtent(maxExtent); } } } |