LineChartPicker::LineChartPicker(QwtPlot *plot) : QwtPlotPicker(plot->canvas()), p(plot) { QwtPlotCanvas *canvas = plot->canvas(); canvas->installEventFilter(this); canvas->setFocusPolicy(Qt::StrongFocus); canvas->setMouseTracking(true); canvas->setFocusIndicator(QwtPlotCanvas::ItemFocusIndicator); canvas->setFocus(); }
DialogFunction::DialogFunction( const LinearFunction::Description::Ptr& pDescription, const QPolygonF& curveSamples, QWidget* pParent) : QDialog(pParent) , _pDescription(pDescription) , _indexSelectedPoint(-1) , _relativeIndex(0) { setupUi(this); widgetPlot->setMinimumSize(1,1); widgetPlot->setAxisScale(QwtPlot::xBottom, _pDescription->xMin, _pDescription->xMax); widgetPlot->setAxisScale(QwtPlot::yLeft, _pDescription->yMin, _pDescription->yMax); widgetPlot->setAxisMaxMinor(QwtPlot::yLeft, 2); widgetPlot->setAxisMaxMinor(QwtPlot::xBottom, 2); widgetPlot->setCanvasBackground(QColor(Qt::black)); widgetPlot->setAxisTitle(QwtPlot::xBottom, _pDescription->szLabelX); widgetPlot->setAxisTitle(QwtPlot::yLeft, _pDescription->szLabelY); _pCurve.reset(new QwtPlotCurve()); _pCurve->setStyle(QwtPlotCurve::Lines); _pCurve->setPen(Qt::white); _pCurve->setSymbol(new QwtSymbol(QwtSymbol::Diamond, Qt::lightGray, _pCurve->pen(), QSize(8,8))); QwtArraySeriesData<QPointF>* pSeries = static_cast<QwtArraySeriesData<QPointF>*>(_pCurve->data()); if (pSeries) { _pCurve->setSamples(curveSamples); } _pCurve->attach(widgetPlot); QwtPlotGrid* pGrid = new QwtPlotGrid; pGrid->setMajorPen(QPen(Qt::gray, 0, Qt::DotLine)); pGrid->attach(widgetPlot); QwtPlotCanvas* pPlotCanvas = static_cast<QwtPlotCanvas*>(widgetPlot->canvas()); pPlotCanvas->installEventFilter(this); pPlotCanvas->setMouseTracking(true); }