【问题标题】:PyQt5: Using google fontsPyQt5:使用谷歌字体
【发布时间】:2019-03-03 12:14:26
【问题描述】:

是否可以在 PyQt5 应用程序中使用谷歌字体?我正在尝试向像素图中添加一些文本,并希望能够在可能的情况下使用谷歌字体。 https://fonts.google.com/.

我无法在网上找到任何关于此的内容。

def addText(pixmap, w, h, name):
    painter = QPainter()        
    font = painter.font()
    font.setPointSize(36);
    painter.begin(pixmap)
    position  = QtCore.QRect(0, 0, w,h)
    painter.setFont(font);
    painter.drawText(position, Qt.AlignCenter, name);
    painter.end()
    return pixmap

如果可能的话,关于如何使这项工作发挥作用的任何想法?提前感谢

【问题讨论】:

    标签: python pyqt pyqt5 google-fonts


    【解决方案1】:

    你必须下载字体并添加QFontDatabase::addApplicationFont(),例如:

    from PyQt5 import QtCore, QtGui, QtWidgets
    
    def addText(pixmap, w, h, name):
        painter = QtGui.QPainter(pixmap)        
        font = QtGui.QFont("Roboto")
        font.setPointSize(36)
        position  = QtCore.QRect(0, 0, w, h)
        painter.setFont(font);
        painter.drawText(position, QtCore.Qt.AlignCenter, name);
        painter.end()
        return pixmap
    
    def create_pixmap():
        pixmap = QtGui.QPixmap(512*QtCore.QSize(1, 1))
        pixmap.fill(QtCore.Qt.white)
        return addText(pixmap, 512, 512, "Stack Overflow")
    
    if __name__ == '__main__':
        import sys
        app = QtWidgets.QApplication(sys.argv)
        dir_ = QtCore.QDir("Roboto")
        _id = QtGui.QFontDatabase.addApplicationFont("Roboto/Roboto-Regular.ttf")
        print(QtGui.QFontDatabase.applicationFontFamilies(_id))
        w = QtWidgets.QLabel()
        w.setPixmap(create_pixmap())
        w.show()
        sys.exit(app.exec_())
    

    例子可以在here找到。

    【讨论】:

    • 我正在寻找全球答案。这对 OP 来说太具体了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-02-21
    • 2017-07-31
    • 2011-12-30
    • 2012-03-10
    • 2015-07-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多