当我使用QPainter
将drawText
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
答案 0 :(得分:3)
您需要确保在QFont::PreferAntialias
电话中添加font.setStyleStrategy
。像这样:
font.setStyleStrategy(QFont::NoSubpixelAntialias | QFont::PreferAntialias);