QtChart 启用缩放功能setRubberBand()之后,setRange(min, max)出现的问题
因项目需要,用qtchart绘制的图形需要框选放大,这里用到了setRubberBand()函数,但是在左键复原的时候出现了问题。
先铺垫一下,博主是重写了chartview的鼠标事件的mouserelease(event)来触发复原的信号。
复原的原理:记录初始时的坐标轴的range,接收到复原信号后,将原坐标轴重置setRange()即可。
问题来了
先来看看初始时的图形:

所有波形的时间轴为一样的,通过框选任意波形选择框选的时间轴将所有波形全部放大,

通过点击鼠标左键复原

图中随便点击哪个波形,需要是要所有波形恢复正常,这时问题出现了,除了被点击的波形之外其他波形都恢复正常,此时右键点击其他波形,第一个波形恢复正常,被点击的波形出现同样的问题。
经过梳理发现问题可能就出现在setRubberBand()上,通过查询果不其然,上段文档
[virtual protected] void QChartView::mouseReleaseEvent(QMouseEvent *event)

最低0.47元/天 解锁文章
943

被折叠的 条评论
为什么被折叠?



