作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在 Qt 的 QGraphicsScene
中使用抗锯齿渲染时,有一个行为使绘图看起来不像预期的那样:重叠的线条变得更暗。我在文档中看不到有关此行为的任何描述,也找不到禁用它的方法。
例如,如果我想绘制这样一个多边形:
由于点的数量,不可能没有重叠线 - 很好。但是由于激活了抗锯齿功能,一些边框看起来比其他边框“更粗”。
有没有什么办法可以避免这种情况,并使消除锯齿的线条可以重叠,同时在渲染时不会变暗?
我当然知道我可以重新定义 paint()
函数并手动绘制不重叠的单独线条,但这是我想要避免的。我正在使用 Pyside,这会显着降低应用程序的速度,因为调用 paint()
的频率很高。
编辑 通过使用 QPainterPath
/QGraphicsPathItem
而不是 QPolygon
/QGraphicsPolygonItem 定义对象形状来修复
。在这种情况下,moveTo
函数可以避免重叠的行。
最佳答案
您可以尝试的另一件事是将半个像素添加到您的坐标(而不是尺寸)。这为我解决了抗锯齿问题。
XCoord = int(XValue) + 0.5
YCoord = int(XValue) + 0.5
还要确保在此之前你有整数像素值。
关于qt - Qt 的 QGraphicsScene 中的抗锯齿使重叠线变暗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15211367/
我是一名优秀的程序员,十分优秀!