Название: qwt.Перемещение по графику кнопкой мыши.
Отправлено: mus_zzz от Январь 15, 2016, 11:44
Добрый день!Возникла такая задача.Включаю возможность перемещения по графику и активирую клавишу перемещения. d_panner = new QwtPlotPanner( qwtPlot1_->canvas() ); d_panner->setMouseButton( Qt::LeftButton ); При перемещении по графику зависает отображение кривой.Что интересно при этом по оси X значения изменяются.Что за магия????
Название: Re: qwt.Перемещение по графику кнопкой мыши.
Отправлено: __Heaven__ от Январь 15, 2016, 13:51
Выложите минимальный пример.
Название: Re: qwt.Перемещение по графику кнопкой мыши.
Отправлено: mus_zzz от Январь 15, 2016, 14:03
QwtPlot *qwtPlot2_ = new QwtPlot(ui7->page1);
qwtPlot2_->resize(1200,500); qwtPlot2_->setTitle( "--График--" ); // заголовок qwtPlot2_->setCanvasBackground( Qt::white ); // цвет фона
qwtPlot2_->setAxisTitle(QwtPlot::yLeft, "Текущий ток"); // Параметры осей координат qwtPlot2_->setAxisTitle(QwtPlot::xBottom, "Время"); qwtPlot2_->insertLegend( new QwtLegend() );
QwtPlotGrid *grid2 = new QwtPlotGrid(); // grid2->setMajorPen(QPen( Qt::green, 2 )); // цвет линий и толщина grid2->attach( qwtPlot2_ ); // добавить сетку к полю графика
QwtPlotMagnifier *magnifier2 = new QwtPlotMagnifier(qwtPlot2_->canvas()); // клавиша, активирующая приближение/удаление magnifier2->setMouseButton(Qt::MidButton);
QwtPlotPanner *pl2_panner = new QwtPlotPanner( qwtPlot2_->canvas() ); // Включить возможность перемещения по графику // #include <qwt_plot_panner.h> // клавиша, активирующая перемещение pl2_panner->setMouseButton( Qt::RightButton ); qwtPlot2_->setAutoReplot(true); plCalInsFlowChan_->qwtCurve0.setTitle("Расчитанный мгновенный расход к1"); plCalInsFlowChan_->qwtCurve1.setTitle("Расчитанный мгновенный расход к2"); plCalInsFlowChan_->qwtCurve2.setTitle("Расчитанный мгновенный расход к3"); plCalInsFlowChan_->qwtCurve3.setTitle("Расчитанный мгновенный расход к4"); plCalInsFlowChan_->qwtCurve4.setTitle("Расчитанный мгновенный расход к5"); plCalInsFlowChan_->qwtCurve5.setTitle("Расчитанный мгновенный расход к6"); plCalInsFlowChan_->qwtCurve6.setTitle("Расчитанный мгновенный расход к7"); plCalInsFlowChan_->qwtCurve7.setTitle("Расчитанный мгновенный расход к8"); QColor c; c.setRgb(255,0,0); plCalInsFlowChan_->qwtCurve0.setPen(c,4); c.setRgb(255,165,0); plCalInsFlowChan_->qwtCurve1.setPen(c,4); c.setRgb(85,107,47); plCalInsFlowChan_->qwtCurve2.setPen(c,4); c.setRgb(0,191,255); plCalInsFlowChan_->qwtCurve3.setPen(c,4); c.setRgb(0,0,255); plCalInsFlowChan_->qwtCurve4.setPen(c,4); c.setRgb(224,102,255); plCalInsFlowChan_->qwtCurve5.setPen(c,4); c.setRgb(0,0,0); plCalInsFlowChan_->qwtCurve6.setPen(c,4); c.setRgb(255,255,0); plCalInsFlowChan_->qwtCurve7.setPen(c,4);
plCalInsFlowChan_->qwtCurve0.setRenderHint(QwtPlotItem::RenderAntialiased, true ); plCalInsFlowChan_->qwtCurve1.setRenderHint(QwtPlotItem::RenderAntialiased, true ); plCalInsFlowChan_->qwtCurve2.setRenderHint(QwtPlotItem::RenderAntialiased, true ); plCalInsFlowChan_->qwtCurve3.setRenderHint(QwtPlotItem::RenderAntialiased, true ); plCalInsFlowChan_->qwtCurve4.setRenderHint(QwtPlotItem::RenderAntialiased, true ); plCalInsFlowChan_->qwtCurve5.setRenderHint(QwtPlotItem::RenderAntialiased, true ); plCalInsFlowChan_->qwtCurve6.setRenderHint(QwtPlotItem::RenderAntialiased, true ); plCalInsFlowChan_->qwtCurve7.setRenderHint(QwtPlotItem::RenderAntialiased, true );
plCalInsFlowChan_->qwtCurve0.attach(qwtPlot2_); plCalInsFlowChan_->qwtCurve1.attach(qwtPlot2_); plCalInsFlowChan_->qwtCurve2.attach(qwtPlot2_); plCalInsFlowChan_->qwtCurve3.attach(qwtPlot2_); plCalInsFlowChan_->qwtCurve4.attach(qwtPlot2_); plCalInsFlowChan_->qwtCurve5.attach(qwtPlot2_); plCalInsFlowChan_->qwtCurve6.attach(qwtPlot2_); plCalInsFlowChan_->qwtCurve7.attach(qwtPlot2_);
Название: Re: qwt.Перемещение по графику кнопкой мыши.
Отправлено: mus_zzz от Январь 15, 2016, 14:04
Это функция которая определяется в конструкторе QMainWindow
Название: Re: qwt.Перемещение по графику кнопкой мыши.
Отправлено: __Heaven__ от Январь 15, 2016, 14:11
Нет. Так не получится :) Нужен отдельный простой пример-проект в зип архиве, где проявляется эта проблема. У вас слишком много факторов, влияющих на поведение.
Название: Re: qwt.Перемещение по графику кнопкой мыши.
Отправлено: mus_zzz от Январь 18, 2016, 08:18
Я взял примерчик padnavigator и на обратную сторону "планшета" выложил график.
Название: Re: qwt.Перемещение по графику кнопкой мыши.
Отправлено: __Heaven__ от Январь 18, 2016, 09:31
У меня там нет графика, оси X нет, сетка никак не перемещается. Советую посмотреть sinusplot из примеров QwtPlot
Название: Re: qwt.Перемещение по графику кнопкой мыши.
Отправлено: mus_zzz от Январь 18, 2016, 09:36
Я в процессе испытаний убрал график))Проблема то в перемещении по самому полотну(я так думаю).Вот пример прикрепил просто на виджет выложил полотно и свободно по нему перемещаюсь.А в предыдущем такое ощущение что событие отпускания кнопки мыши не срабатывает
|