当前位置: 代码迷 >> 综合 >> QT | QPainter,PaintEvent,setRenderHint(防止图形走样)
  详细解决方案

QT | QPainter,PaintEvent,setRenderHint(防止图形走样)

热度:76   发布时间:2024-01-27 23:49:45.0
  1. 反走样是图形学中的重要概念,用以防止通常所说的“锯齿”现象的出现。很多系统的绘图 API 里面都内置了有关反走样的算法,不过由于性能问题,默认一般是关闭的,Qt 也不例外。
//QPainter::Antialiasing 告诉绘图引擎应该在可能的情况下进行边的反锯齿绘制
//QPainter::TextAntialiasing 尽可能的情况下文字的反锯齿绘制
//QPainter::`SmoothPixmapTransform` 使用平滑的pixmap变换算法(双线性插值算法),而不是近邻插值算
painter.setRenderHint(QPainter::Antialiasing, true);
  1. 我们通过这条语句,将Antialiasing属性(也就是反走样)设置为
    true。经过这句设置,我们就打开了QPainter的反走样功能。

  2. 由于反走样需要比较复杂的算法,在一些对图像质量要求不是很高的应用中,是不需要进行反走样的。为了提高效率,一般的图形绘制系统,都是默认不进行反走样的。