Important: Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

Qwt move marker with mouse between interpolated points



  • Hello,

    Let's say i have curve with coordinates (x, y)(1, 1) (2, 1) (3, 1) and a marker. I want to get more x points for my marker to snap on when i move it with mouse. In other words i want my marker to snap to 1.1 , 1.2 , 1.3 x coordinates( now it only snaps to 1, 2 ,3).

    Code snippet of how i move my marker:

        marker->setLineStyle(QwtPlotMarker::VLine);
        marker->attach(tracePlot);
    
        picker = new QwtPlotPicker(tracePlot->xBottom, tracePlot->yLeft, QwtPicker::NoRubberBand,
    QwtPicker::AlwaysOff, tracePlot->canvas());
        pickerMachine = new QwtPickerDragPointMachine();
        picker->setStateMachine(pickerMachine);
    
    connect(picker, &QwtPicker::moved, this, &Widget::moveMarker);
    
    void Widget::moveMarker(QPoint actualMousePosition)
    {
        if(!flagZoom)
        {
            QwtText label;
            QString temp;
            int x = curve->closestPoint(actualMousePosition, NULL);
            QPointF position = curve->sample(x);
            marker->setValue(position);
            temp = QString::number(marker->xValue());
            label.setText(temp);
            marker->setLabel(label);
        }
        tracePlot->replot();
    }
    

    I figured i get limited by

    closestPoint(actualMousePosition, NULL);
    sample(x);
    

    returning ints but can't find any other solution.


  • Lifetime Qt Champion

    Hi,

    That's a question you should bring to the Qwt mailing list. Qwt's author is very active there.


Log in to reply