Я пытаюсь загрузить собственный шрифт в приложении Python на CentOS 7 (Python 3.6.2) с установленными QT 5.10 и PyQT 5.10. Я пытаюсь сделать это с помощью следующего кода:
id = QFontDatabase.addApplicationFont("/PATH/party.ttf")
_fontstr = QFontDatabase.applicationFontFamilies(id).at(0)
_font = QFont(_fontstr, 8)
app.setFont(font)
Тем не менее, я получаю:
AttributeError: у объекта ‘list’ нет атрибута ‘at’
Я проверил, что файл шрифта найден, то есть id! = 1, его 0.
Кроме того, я проверил:
print("%s." % (type(QFontDatabase.applicationFontFamilies(id))))
Я ожидал, что тип будет QStringList, как предложено в руководстве (http://doc.qt.io/qt-5/qfontdatabase.html#applicationFontFamilies) но это, похоже, не тот случай. Я также не могу вызвать другие методы, такие как removeDuplicates () без ошибки, что в списке нет соответствующего атрибута.
Похоже, так как pyQt 5, python str
объекты используются где QString
ожидаются и ожидаются QStrinList
ведите себя соответственно. Итак, в этом случае, просто сделайте это с помощью python:
_fontstr = QFontDatabase.applicationFontFamilies(id)[0]
Других решений пока нет …