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
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.