用Python(PyQT 5.10)在QT 5.10中加载自己的字体

时间:2018-02-13 08:30:28

标签: python c++ qt pyqt5

我尝试在安装了QT 5.10和PyQT 5.10的CentOS 7(Python 3.6.2)上的Python应用程序中加载自己的字体。我尝试使用以下代码:

id = QFontDatabase.addApplicationFont("/PATH/party.ttf")
_fontstr = QFontDatabase.applicationFontFamilies(id).at(0)
_font = QFont(_fontstr, 8)
app.setFont(font)

但是,我收到了:

  

AttributeError:' list'对象没有属性'

我检查了找到的字体文件,即id!= 1,其为0。

此外,我查了一下:

print("%s." % (type(QFontDatabase.applicationFontFamilies(id))))

我希望该类型是手册(http://doc.qt.io/qt-5/qfontdatabase.html#applicationFontFamilies)提出的QStringList,但似乎并非如此。我也无法调用其他方法,如removeDuplicates(),而不会出现列表中没有相关属性的错误。

1 个答案:

答案 0 :(得分:1)

看起来,因为pyQt 5,python str对象被用在期望QString s且预期QStrinList的行为相应的地方。所以,在这种情况下,只需用python方式:

_fontstr = QFontDatabase.applicationFontFamilies(id)[0]