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);