如何重置/删除QCustomPlot坐标轴ticker设置恢复默认数值刻度
如何将QCustomPlot坐标轴ticker重置为默认数值模式
原因说明
clearPlottables()仅清空画布上的绘图元素,setRange()仅调整坐标轴取值范围,两个接口都不会修改坐标轴已经绑定的ticker实例。你之前手动将x轴ticker替换为QCPAxisTickerDateTime后,该配置会持续生效,日期ticker会把轴上的数值按Unix时间戳解析,数值0对应的时间点就是1970-01-01,因此切换非日期类图表时会出现刻度显示异常。
注意:你示例代码中写的customplot->replot;没有实际执行重绘逻辑,只是取了成员函数的地址,正确调用需要加括号写成customplot->replot();。
重置实现
直接给x轴重新绑定默认的数值类型ticker即可恢复普通数值刻度:
// 设置默认数值类型ticker QSharedPointer<QCPAxisTicker> defaultTicker(new QCPAxisTicker); customplot->xAxis->setTicker(defaultTicker); // 按需调整范围后重绘 customplot->xAxis->setRange(0, 5); customplot->replot();
复用控件建议
频繁复用QCustomPlot控件绘制不同类型图表时,不要依赖控件的残留状态,每次初始化新图表时主动为坐标轴设置匹配当前场景的ticker即可避免这类显示问题:
- 普通线性数值刻度:使用
QCPAxisTicker - 日期时间刻度:使用
QCPAxisTickerDateTime - 文本类目刻度:使用
QCPAxisTickerText - 对数坐标刻度:使用
QCPAxisTickerLog - 科学计数法刻度:使用
QCPAxisTickerScientific
内容的提问来源于stack exchange,提问作者Gabriel Jo
相关产品推荐
相关产品推荐

