我尝试在CentOS 7(Python3.6.2)上加载自己的字体,安装了QT5.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(),但在列表中没有符合属性的错误。
发布于 2018-02-13 08:49:33
看起来,从pyQt 5开始,就会使用python str对象,其中QString的行为与预期的QStrinList相应。因此,在本例中,只需使用python方式:
_fontstr = QFontDatabase.applicationFontFamilies(id)[0]https://stackoverflow.com/questions/48762429
复制相似问题