最近使用QWT做一个画波形的项目,由于需要用时间做横轴所以在设置标尺的时候需要这样
this->setAxisScale(QwtPlot::xBottom, 0.0, 3600.0,600);
这会有一个问题就是当添加 QwtPlotZoomer以后选中放大没问题,但是右键(默认)还原以后,横轴会发生变化。解决这个问题的办法是,添加一个槽函数用来响应QwtPlotZoomer::zoomed(const QRectF&);代码如下
connect(m_pZoomer,SIGNAL(zoomed(const QRectF&)),this, SLOT(onZoomer(const QRectF&)));
void PlotWave::onZoomer(const QRectF &rect )
{
if (m_pZoomer->zoomRectIndex()==0)
{
this->setAxisScale(QwtPlot::xBottom, 0.0, m_totalWidth,m_indexStep); //在这里重新设置一下就OK了
this->setAxisScale(QwtPlot::yLeft, 0.0,g_height);
}
this->replot();
}