当操作系统关闭了消除锯齿功能时,如何绘制QFont抗锯齿?

时间:2016-01-08 19:33:45

标签: qt antialiasing qpainter qpixmap

当我使用QPainterdrawText QPixmap用于QFont时,如果操作系统启用了反别名,则会显示消除锯齿,但不会即使我明确设置了画家的渲染提示和字体策略

QPainter painter(&pixmap);
painter.setRenderHints(QPainter::Antialiasing | QPainter::TextAntialiasing);
font.setStyleStrategy(QFont::NoSubpixelAntialias); // I do not want clear-type

我知道操作系统(在这种情况下是Windows 7)能够在操作系统级别关闭反别名文本时绘制消除锯齿的文本,因为visual studio会这样做。

如何让Qt覆盖此操作系统的抗锯齿设置?

搜索字词:antialias

1 个答案:

答案 0 :(得分:3)

您需要确保在QFont::PreferAntialias电话中添加font.setStyleStrategy。像这样:

font.setStyleStrategy(QFont::NoSubpixelAntialias | QFont::PreferAntialias);