QwtPlot更新自定义轴

时间:2016-03-07 10:35:51

标签: c++ qt qwt

使用Qwt我必须使用自定义x轴制作绘图,我可以在程序执行时更改缩放标签。 为了做到这一点,我从label重载了QwtScaleDraw,如下所示:

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窗口构造函数中调用方法setTimeScale(2.0, "sec),这可以正常工作。但是,如果我尝试在例如时调用该方法。按下按钮,然后它什么也没做? 我尝试过调用replot()updateAxes(),但这没有任何改变。

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

我自己找到了解决方案。 我需要致电{{1}}。