PyQt5: использование шрифтов Google - PullRequest
0 голосов
/ 19 декабря 2018

Можно ли использовать шрифты Google в приложении PyQt5?Я пытаюсь добавить текст в растровое изображение и хочу по возможности использовать шрифты Google.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

Есть идеи, как заставить эту работу работать, если это возможно?Спасибо заранее

1 Ответ

0 голосов
/ 19 декабря 2018

Вам необходимо скачать шрифт и добавить его с помощью 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_())

enter image description here

Пример можно найти здесь .

...