我想用Qt画粉笔风格的线条,就像你通常在黑板上看到的那样。以下是我想到的一个例子:
实现此渲染样式的最佳方法是什么?我是否需要使用特殊画笔绘制很多小线条,或者是否有更好的方法来获得样本图像中的“曲线”样式?
整合这个的最佳位置在哪里?从理论上讲,将它放在QPainter下是理想的,例如在自定义QPaintEngine中,例如所有各种QPainter :: drawLine调用最终都使用了粉笔样式。但是,看起来虽然QPaintEngine界面看起来很完美,但这个类本身并不适合用于此目的......
提前感谢您的帮助。
问候,
费边
答案 0 :(得分:1)
我会开始查看QGraphicsEffect的方式..我认为应该有可能开发出这样的过滤器,它会产生类似的效果。
我会在这里更新您的评论答案。
不,QGraphicsEffect可以应用'每个图形项'。如果您查看QGraphicsItem,您将看到有一个setGraphicsEffect方法,因此您可以设计一个适用于QGraphicsLineItem的效果,并将其设置为您想要看起来很白垩的行。
重要的是你不必对预先绘制的图像进行操作,你可以使用graphicsEffect完全使用所有者绘制项目(例如假设效果仅适用于QGraphicsLineItem)预先绘制它使用drawSource()然后修改或从头开始完全绘制它。
我很乐意帮助你进行一些编码,可能会在下周的某个地方进行编码,因为我现在需要为我正在进行的项目提供类似的东西..但是接下来的几天没有时间.. < / p>
我会在完成后立即通过来源链接更新答案。
自定义画笔看起来也很有前途......
答案 1 :(得分:1)
我以不同的方式解决了这个问题。使用纹理刷子没有提供良好的结果(也许我的错)。遗憾的是,QGraphicsEffect不是一个选项,因为我的渲染不是基于QGraphicsView。
我最终做了什么:
这不是最优雅的方法,因为我无法直接使用QPainter方法,但它为我的目的提供了良好的结果。这是一个例子: