QWT 移动 canvas
QWT moving canvas
我正在为我的小部件使用 QWT 库,canvas 上有一些曲线,如下所示:
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(例如)并使用此步骤移动,或者我可以转到我定义的曲线的 end/start。
我在 QwtPlotPanner class 中找到了方法,这给了我这样的机会:
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 用户指南告诉我们:
Adjust the enabled axes according to dx/dy
Parameters
dx Pixel offset in x direction
dy Pixel offset in y direction
这是我找到的唯一信息。如何将像素步长转换为我的坐标系统步长?我需要走到曲线的尽头,所以我应该 return 曲线的最后一个 QPointF(x,y) 并将其转换为像素步长?或者我用错了 class/method?
非常感谢:)
感谢@Pavel Gridin:
(https://ru.whosebug.com/a/876184/251026)
"For conversion from pixels to coordinates and back there are two
methods: QwtPlot::transform and QwtPlot::invTransform"
我正在为我的小部件使用 QWT 库,canvas 上有一些曲线,如下所示:
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(例如)并使用此步骤移动,或者我可以转到我定义的曲线的 end/start。 我在 QwtPlotPanner class 中找到了方法,这给了我这样的机会:
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 用户指南告诉我们:
Adjust the enabled axes according to dx/dy Parameters dx Pixel offset in x direction dy Pixel offset in y direction
这是我找到的唯一信息。如何将像素步长转换为我的坐标系统步长?我需要走到曲线的尽头,所以我应该 return 曲线的最后一个 QPointF(x,y) 并将其转换为像素步长?或者我用错了 class/method? 非常感谢:)
感谢@Pavel Gridin: (https://ru.whosebug.com/a/876184/251026)
"For conversion from pixels to coordinates and back there are two methods: QwtPlot::transform and QwtPlot::invTransform"