用QPainter绘制波形,如何控制显示范围?

时间:2022-12-16 16:22:40
在做实时波形显示的时候,我是用QPainter::drawPolyline(QPointF*, int)绘制的波形,也实现了在Y方向上各种scale下的显示。但是有个问题,就是希望scale比较大的时候,波形在y方向上有个显示范围(即一定范围内截止,比如仅显示高度300个像素内的波形),如下图显示,(因为有好几个波形通道,不希望一个通道把另外的覆盖)。如何实现这种效果呢,超过范围的部分不显示出来。

用QPainter绘制波形,如何控制显示范围?

我知道一种方式,让每个通道绘制在单独的一个QPixmap上(比如300像素高的长条pixmap),这样多个通道将互不影响,但是这种方式对我的改动太大了……,我是直接绘制在一个大的pixmap上的,希望通过绘制每个波形通道时设置一下QPainter来限定范围。

3 个解决方案

#1


我知道了
QPainter关于clip的操作,见Qt assistant

谁第一个回复我就把分给他结贴! 用QPainter绘制波形,如何控制显示范围?

#2


...我引用的是QWT的库,里面有些东西可以直接用。也是类似处理的。

#3


用QPainter绘制波形,如何控制显示范围?效果图

#1


我知道了
QPainter关于clip的操作,见Qt assistant

谁第一个回复我就把分给他结贴! 用QPainter绘制波形,如何控制显示范围?

#2


...我引用的是QWT的库,里面有些东西可以直接用。也是类似处理的。

#3


用QPainter绘制波形,如何控制显示范围?效果图