【问题标题】:Can't antialias font不能抗锯齿字体
【发布时间】:2016-04-20 20:44:53
【问题描述】:

这是我写的代码,但它似乎应用了抗锯齿

font = QtGui.QFont("Trajan Pro", 20)
font.setStyleStrategy(QtGui.QFont.PreferAntialias)
font.setBold(True)
self.setFont(font)
self.shadow = QtGui.QGraphicsDropShadowEffect(self)
self.shadow.setOffset(2,1)
self.shadow.setBlurRadius(2.0)
self.label.setGraphicsEffect(self.shadow)

有什么建议吗?

编辑: 这是一个 MCVE

from PyQt4 import QtCore, QtGui
class FontWidget(QtGui.QWidget):
    def __init__(self, parent):
        super(FontWidget, self).__init__(parent)

        layout = QtGui.QHBoxLayout()
        layout.setAlignment(QtCore.Qt.AlignHCenter | QtCore.Qt.AlignCenter)
        label = QtGui.QLabel('Hello, this is a test')
        layout.addWidget(label)
        self.setLayout(layout)

        fontDB = QtGui.QFontDatabase()
        fontDB.addApplicationFont(":/TrajanPro-Regular.otf")
        font = QtGui.QFont("Trajan Pro", 20)
        font.setStyleStrategy(QtGui.QFont.PreferAntialias)
        font.setBold(True)
        self.setFont(font)

        shadow = QtGui.QGraphicsDropShadowEffect(self)
        shadow.setOffset(2,1)
        shadow.setBlurRadius(2.0)
        label.setGraphicsEffect(shadow)

        palette = QtGui.QPalette()
        palette.setColor(QtGui.QPalette.Foreground, QtCore.Qt.white)
        palette.setColor(QtGui.QPalette.Background, QtCore.Qt.red)
        self.setPalette(palette)

if __name__ == '__main__':
    app = QtGui.QApplication([])
    window = FontWidget(None)
    window.show()
    app.exec_()

正如您在 S 和 O 中看到的,抗锯齿似乎没有正确应用

编辑 2:

添加了导入

这里是下载字体的链接:

http://www.fontpalace.com/font-details/TrajanPro-Regular+OTF/

【问题讨论】:

  • 我很乐意提供帮助并处理了其中一些问题,但是代码片段给试图提供帮助的人留下了很多工作。请考虑提供MCVE
  • 好的,我会做的
  • 正在对字体进行抗锯齿处理,它只是做了一个粗略的工作。可能他们的渲染引擎的线条很细。
  • @user3489057。这不是 MCVE,因为它正在使用您未包含的资源。你试过其他字体吗?您在什么平台上进行测试?
  • 请在 MCVE 中包含导入。通常,如果您无法剪切并粘贴到文本编辑器中并运行它来重现结果,那么您就没有 MCVE。你有那个特定字体的链接吗?

标签: python qt fonts pyqt antialiasing


【解决方案1】:

问题出在字体本身。它在 Mac 上使用 Qt 4.8 64 位的抗锯齿效果很好,但 Windows 字体渲染器似乎不够先进,无法对带有 PostScript 轮廓/OpenType 布局的字体进行抗锯齿处理。我尝试使用 FontForge,但目前无法在 Windows 上使其具有抗锯齿功能。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-02-18
    • 2011-01-26
    • 2015-07-31
    • 2011-02-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多