Qt抗鋸齒操作
- 2020 年 4 月 1 日
- 筆記
❝將圖片,自繪形狀,文本顯示到螢幕時,它們的邊緣都有不同的鋸齒狀,非常不好看。本文介紹一些抗鋸齒的操作,讓邊緣更平滑,看起來好看點,但副作用是會額外的性能問題。❞
使用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);