QT | QPainter,PaintEvent,setRenderHint(防止图形走样)
- 反走样是图形学中的重要概念,用以防止通常所说的“锯齿”现象的出现。很多系统的绘图 API 里面都内置了有关反走样的算法,不过由于性能问题,默认一般是关闭的,Qt 也不例外。
//QPainter::Antialiasing 告诉绘图引擎应该在可能的情况下进行边的反锯齿绘制
//QPainter::TextAntialiasing 尽可能的情况下文字的反锯齿绘制
//QPainter::`SmoothPixmapTransform` 使用平滑的pixmap变换算法(双线性插值算法),而不是近邻插值算
- 1
- 2
- 3
painter.setRenderHint(QPainter::Antialiasing, true);
- 1
-
我们通过这条语句,将Antialiasing属性(也就是反走样)设置为
true。经过这句设置,我们就打开了QPainter的反走样功能。 -
由于反走样需要比较复杂的算法,在一些对图像质量要求不是很高的应用中,是不需要进行反走样的。为了提高效率,一般的图形绘制系统,都是默认不进行反走样的。
painter->setRenderHints(QPainter::SmoothPixmapTransform);//消锯齿
后面使用drawPixmap绘图。
- 1
- 2