今天想给自己的Qt程序添加一个新功能:点击按钮重新设置X和Y轴的范围。
因为自己将ploter设置了interactions,可以用鼠标拖来拖去,还可以放大缩小。但是这样改变了我本来的绘图布局。所以我创建了一个按钮,点击的动作连接到resetPloterSlot()
槽上。
刚开始我的槽函数编写如下:
void RealTimeWindow::resetPloterSlot()
{
ploter->xAxis->setRange(0, 12000);
ploter->yAxis->setRange(0, 300);
}
然而单纯的setRange()
仅仅只是将横纵坐标的范围设置,需要再调用一下replot()
函数重新绘制ploter
.正确的槽函数代码如下
void RealTimeWindow::resetPloterSlot()
{
qDebug() << "resetPloterSlot is called";
ploter->xAxis->setRange(0, 12000);
ploter->yAxis->setRange(0, 300);
ploter->replot();
}
再重新debug 程序就能正确运行功能。
事实上,对于ploter的更改,包括添加数据,如果不起作用就可以调用replot()
函数试试效果。