在QFont中是否有命令我可以获得字体的样式。我想出了如何获取字体文件的姓氏,但没有获取文件的特定样式。我找到了一个命令,它返回与字体系列相关的整个样式列表。
styleList = QtGui.QFontDatabase.styles(fontFamilyName)
我需要特定字体文件的确切样式。例如,如果我将arialb.ttf作为输入,我应该得到姓氏:Arial;风格:大胆。有什么想法吗?
但我正在尝试使用未安装在机器中的字体。这是我的代码。
fontFile = "C:\Users\Desktop\abc.otf"
fontdb = QtGui.QFontDatabase()
id = fontdb.addApplicationFont(fontFile)
family = fontdb.applicationFontFamiles(id)
font = QtGui.QFont(family[0])
print font.styleName()
答案 0 :(得分:2)
您应该始终使用QFontInfo来获取有关字体的准确信息。 QFont只会显示请求的内容,而不是系统实际能够提供的内容:
>>> font = QtGui.QFont('Arial')
>>> font.family()
'Arial'
>>> fontinfo = QtGui.QFontInfo(font)
>>> fontinfo.family()
'Helvetica'
我没有" Arial"安装在我的系统上,因此字体解析为最近的等价物,即" Helvetica"。要获得风格,请执行以下操作:
>>> fontinfo.styleName()
'Regular'
或直接查询属性:
>>> fontinfo.bold()
False
>>> fontinfo.italic()
False