Название: Как получить пределы (min и max), в которых построены оси у объекта QwtPlot ? Отправлено: foufou от Январь 18, 2011, 21:54 Нужно мне при помощи QwtPlot рисовать графики, но на "квадратной" координатной сетке, т.е. на такой сетке, у которой присутствуют не только левая ось Y и нижняя X, но и правая ось Y вместе с верхней осью X. Важно, чтобы пределы, в которых нарисована правая ось Y совпадали с пределами левой оси Y. Допустим, левая ось Y построена в пределах от 18.1 до 20.1 с шагом 0.2. В этом случае правая ось Y тоже должна быть построена в этих же пределах. Аналогично с осями X - верхняя ось должна повторять нижнюю.
Как задать пределы вроде понятно - при помощи setAxisScale. Например, вот так: qwtPlot->setAxisScale(QwtPlot::xTop,minX,maxX); Однако не получается считать текущие пределы оси. Подскажите пожалуйста, кто имеет опыт работы с qwt, как это можно сделать ? Пытаюсь делать вот так: QwtScaleWidget *qwtScB = qwtPlot->axisWidget(QwtPlot::xBottom); QwtScaleDraw *scdwB = qwtScB->scaleDraw(); int minX = scdwB->scaleDiv().lowerBound(); int maxX = scdwB->scaleDiv().upperBound(); qwtPlot->setAxisScale(QwtPlot::xTop,minX,maxX); Вроде работает, но как-то криво. Например, когда делаю зум несколько раз, заметно, что парные оси начинают не совпадать. Также работает это как-то нестабильно. Замечал, что на некоторых наборах вообще получается ерунда. Название: Re: Как получить пределы (min и max), в которых построены оси у объекта QwtPlot ? Отправлено: Racheengel от Февраль 20, 2011, 13:23 попробуй после изменения данных и до твоего кода вызывать updateAxisScales() (по моему так), должно помочь.
Название: Re: Как получить пределы (min и max), в которых построены оси у объекта QwtPlot ? Отправлено: Dimas от Апрель 09, 2012, 10:00 По поводу получения текущих пределов осей. Сам столкнулся недавно. Тема старая, но для следующих поколений вот решение:
Код:
|