QPainter.drawText 丑陋的字体渲染

Posted

技术标签:

【中文标题】QPainter.drawText 丑陋的字体渲染【英文标题】:QPainter.drawText ugly font rendering 【发布时间】:2014-03-17 14:36:46 【问题描述】:
qfont = QtGui.QFont('Ubuntu', 9)
#qfont.setHintingPreference(QtGui.QFont.PreferDefaultHinting)
#qfont.setStyleStrategy(QtGui.QFont.PreferAntialias)
qfont.setStyle(QtGui.QFont.StyleNormal)
qfont.setWeight(QtGui.QFont.Normal)
qpaint.setFont(qfont)
qpaint.drawText(qpix.rect() , QtCore.Qt.AlignBottom + QtCore.Qt.AlignCenter, Invent.get_item(i)['type'])

字体渲染(抗锯齿)与其他应用程序使用的不同。

http://rghost.net/53129449/image.png

如何让它看起来一样?

【问题讨论】:

您的图片不再可用。试试把它放在 imgur.com 上? 【参考方案1】:

我不确定这是否直接适用于 pyQt,但在 c++ 端渲染提示需要在绘画被缩放时设置,否则看起来会很糟糕。以下是我设置标志的方式:

m_paintFlags = QPainter::RenderHint(QPainter::Antialiasing | 
    QPainter::SmoothPixmapTransform | 
    QPainter::HighQualityAntialiasing);

然后,在绘制任何东西之前的绘制事件中:

painter.setRenderHints(m_paintFlags);

【讨论】:

以上是关于QPainter.drawText 丑陋的字体渲染的主要内容,如果未能解决你的问题,请参考以下文章

初始化数据库中的 QPainter#drawText 段错误

调整大小后丑陋的字体,OpenGL

Chrome“渲染字体”从哪里获得字体名称?

Fedora 24 Linux 环境下实现 Infinality 字体渲染增强及 Java 字体渲染改善的方法

fedora25配置 Infinality 字体渲染增强

字体渲染详解