当 OS 已关闭抗锯齿功能时,如何绘制抗锯齿的 QFont?
How do I draw a QFont anti-aliased when the OS has anti-alias turned off?
当我使用 QPainter
到 drawText
到 QPixmap
上使用 QFont
时,当 OS 具有抗锯齿时,它看起来抗锯齿别名已启用,但即使 我明确设置了画家的渲染提示和字体策略:
QPainter painter(&pixmap);
painter.setRenderHints(QPainter::Antialiasing | QPainter::TextAntialiasing);
font.setStyleStrategy(QFont::NoSubpixelAntialias); // I do not want clear-type
我知道 OS(在本例中为 Windows 7)能够在 OS 级别关闭抗锯齿文本时绘制抗锯齿文本,因为 visual studio 这样做。
如何让 Qt 覆盖此 OS 的抗锯齿设置?
搜索词:抗锯齿
您需要确保将 QFont::PreferAntialias
添加到您的 font.setStyleStrategy
调用中。像这样:
font.setStyleStrategy(QFont::NoSubpixelAntialias | QFont::PreferAntialias);
当我使用 QPainter
到 drawText
到 QPixmap
上使用 QFont
时,当 OS 具有抗锯齿时,它看起来抗锯齿别名已启用,但即使 我明确设置了画家的渲染提示和字体策略:
QPainter painter(&pixmap);
painter.setRenderHints(QPainter::Antialiasing | QPainter::TextAntialiasing);
font.setStyleStrategy(QFont::NoSubpixelAntialias); // I do not want clear-type
我知道 OS(在本例中为 Windows 7)能够在 OS 级别关闭抗锯齿文本时绘制抗锯齿文本,因为 visual studio 这样做。
如何让 Qt 覆盖此 OS 的抗锯齿设置?
搜索词:抗锯齿
您需要确保将 QFont::PreferAntialias
添加到您的 font.setStyleStrategy
调用中。像这样:
font.setStyleStrategy(QFont::NoSubpixelAntialias | QFont::PreferAntialias);