Qt抗锯齿操作

❝将图片,自绘形状,文本显示到屏幕时,它们的边缘都有不同的锯齿状,非常不好看。本文介绍一些抗锯齿的操作,让边缘更平滑,看起来好看点,但副作用是会额外的性能问题。❞

使用QPainter抗锯齿

QPainter painter(this);  /* 尽可能消除锯齿边缘 */  painter.setRenderHint(QPainter::Antialiasing);  /* 尽可能消除文本锯齿边缘 */  painter.setRenderHint(QPainter::TextAntialiasing);  /* 启用线性插值算法以此来平滑图片 */  painter.setRenderHint(QPainter::SmoothPixmapTransform);  

启用antialiasing属性

  • QML中所有继承于Item的元素都具备antialiasing属性(默认不启用)。如:
Rectangle {      antialiasing: true  }  
  • 所有继承于QQuickItem类都具备设置抗锯齿属性(默认不启用)。如:
QQuickItem::setAntialiasing(true);