QwtPlot 更新自定义轴
QwtPlot updating custom axis
我必须使用 Qwt 绘制带有自定义 x 轴的图,我可以在其中更改程序执行下的比例标签。
为此,我从 QwtScaleDraw
中重载了 label
,如下所示:
H-文件:
class TimeScaleDraw : public QwtScaleDraw
{
public:
TimeScaleDraw();
virtual QwtText label(double) const;
void setTimeScale(double factor, QString unit);
private:
double factor;
QString unit;
};
Cpp 文件:
TimeScaleDraw::TimeScaleDraw()
{
factor = 1.0;
unit = "s";
}
QwtText TimeScaleDraw::label(double val) const
{
return QwtText(QString::number(val*factor) + unit);
}
void TimeScaleDraw::setTimeScale(double factor, QString unit)
{
this->factor = factor;
this->unit = unit;
}
如果我从我的 Qt window 构造函数中调用方法 setTimeScale(2.0, "sec)
,这会很好地工作。但是,如果我尝试在例如时调用该方法。按下一个按钮,然后它什么都不做?
我试过调用 replot()
和 updateAxes()
但这没有任何改变。
有什么建议吗?
我自己找到了解决方案。
我需要打电话给 invalidateCache()
.
我必须使用 Qwt 绘制带有自定义 x 轴的图,我可以在其中更改程序执行下的比例标签。
为此,我从 QwtScaleDraw
中重载了 label
,如下所示:
H-文件:
class TimeScaleDraw : public QwtScaleDraw
{
public:
TimeScaleDraw();
virtual QwtText label(double) const;
void setTimeScale(double factor, QString unit);
private:
double factor;
QString unit;
};
Cpp 文件:
TimeScaleDraw::TimeScaleDraw()
{
factor = 1.0;
unit = "s";
}
QwtText TimeScaleDraw::label(double val) const
{
return QwtText(QString::number(val*factor) + unit);
}
void TimeScaleDraw::setTimeScale(double factor, QString unit)
{
this->factor = factor;
this->unit = unit;
}
如果我从我的 Qt window 构造函数中调用方法 setTimeScale(2.0, "sec)
,这会很好地工作。但是,如果我尝试在例如时调用该方法。按下一个按钮,然后它什么都不做?
我试过调用 replot()
和 updateAxes()
但这没有任何改变。
有什么建议吗?
我自己找到了解决方案。
我需要打电话给 invalidateCache()
.