【问题标题】:How do I draw a QFont anti-aliased when the OS has anti-alias turned off?当操作系统关闭抗锯齿时,如何绘制 QFont 抗锯齿?
【发布时间】:2023-04-07 18:06:02
【问题描述】:

当我使用QFontQPixmap 上使用QPainterdrawText 时,当操作系统启用了抗锯齿功能时,它会显示为抗锯齿功能,但即使没有启用抗锯齿功能时也不会显示我明确设置了画家的渲染提示和字体的策略

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

【问题讨论】:

    标签: qt antialiasing qpainter qpixmap


    【解决方案1】:

    您需要确保将QFont::PreferAntialias 添加到您的font.setStyleStrategy 呼叫中。像这样:

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

    【讨论】:

    • 正确的代码是 font.setStyleStrategy(QFont::PreferAntialias);
    猜你喜欢
    • 2014-02-18
    • 2010-12-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-28
    • 2011-07-05
    • 2014-03-19
    • 1970-01-01
    相关资源
    最近更新 更多