今天想給自己的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()
函數試試效果。