我尝试在安装了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(),而不会出现列表中没有相关属性的错误。
答案 0 :(得分:1)
看起来,因为pyQt 5,python str
对象被用在期望QString
s且预期QStrinList
的行为相应的地方。所以,在这种情况下,只需用python方式:
_fontstr = QFontDatabase.applicationFontFamilies(id)[0]