QWT移动画布

问题描述 投票:1回答:1

我正在为我的小部件使用QWT库,画布上有一些曲线,如下所示:

void Plot::addCurve1( double x, double y, const char *CurveName,
                      const char *CurveColor,const char *CurveType )
{
...
    *points1 << QPointF(x, y);
    curve1->setSamples( *points1 );
    curve1->attach( this );
...
}

所以,我所有的曲线都有相同的坐标系。我正在尝试构建导航界面,所以我可以将步骤放入TextEdit(例如)并使用此步骤移动,或者我可以进入已定义曲线的结束/开始。我在QwtPlotPanner类中找到了方法,这给了我这样的机会:

double QWT_widget::move_XLeft()
{
    //getting step from TextEdit
    QString xValStr = _XNavDiscrepancies->toPlainText();
    double xVal = xVal.toDouble();
    // moveCanvas(int dx, int dy) - the method of QwtPlotPanner
    plot->panner->moveCanvas(xVal,0);
    x_storage = x_storage - xVal;
    return x_storage;
}

所以它工作正常,但像素位移,我需要将它粘贴到我定义的曲线和它的坐标系。 Qwt用户指南告诉我:

根据dx / dy调整启用的轴参数dx x方向的像素偏移dy y方向的像素偏移

这是我发现的唯一信息。如何将像素步骤转换为我的协调系统步骤?我需要走到曲线的末尾,所以我应该返回曲线的最后一个QPointF(x,y)并将其转换为像素步长?或者我可能使用了错误的类/方法?非常感谢你 :)

qt qwt
1个回答
0
投票

感谢@Pavel Gridin:(https://ru.stackoverflow.com/a/876184/251026

“对于从像素到坐标的转换,有两种方法:QwtPlot :: transform和QwtPlot :: invTransform”

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.