3

在 Qt 中使用抗锯齿渲染时QGraphicsScene,有一种行为使绘图看起来不像预期的那样:重叠的线条变得更暗。我在文档中看不到此行为的任何描述,也找不到禁用它的方法。

例如,如果我想绘制这样一个多边形:

多边形

由于点的数量,不可能没有重叠的线 - 很好。但是由于激活了抗锯齿功能,某些边框看起来比其他边框“厚”。

有没有什么办法可以避免这种情况,并有可以重叠的抗锯齿线,但同时被渲染而不会变暗?

我当然知道我可以重新定义paint()函数并手动绘制不重叠的单条线,但这是我想要避免的。我正在使用 Pyside,由于调用频率很高,这会显着减慢应用程序的速度paint()

编辑QPainterPath通过使用/QGraphicsPathItem而不是QPolygon/定义对象形状来修复QGraphicsPolygonItem。在这种情况下,该moveTo功能允许避免重叠的线条。

4

1 回答 1

0

您可以尝试的另一件事是在您的坐标(而不是尺寸)上添加半个像素。这为我解决了抗锯齿问题。

XCoord = int(XValue) + 0.5
YCoord = int(XValue) + 0.5

还要确保在此之前您有整数像素值。

于 2013-07-03T08:35:55.313 回答