Python 使用QFont获取字体文件的样式

Python 使用QFont获取字体文件的样式,python,qt,pyside,Python,Qt,Pyside,QFont中是否有一个命令,我可以从中获取字体的样式。我知道了如何获取字体文件的姓氏,但没有得到文件的特定样式。我找到了一个命令,它返回与字体系列关联的整个样式列表 styleList = QtGui.QFontDatabase.styles(fontFamilyName) 我需要特定字体文件的确切样式。例如,如果我输入arialb.ttf,我应该得到姓:Arial;风格:粗体。有什么想法吗 但我正在尝试的字体,这是没有安装在机器上。这是我的密码 fontFile = "C:

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()
您应该始终使用以获取有关字体的准确信息。A将仅显示请求的内容,而不是系统实际能够提供的内容:

>>> 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

但我正在尝试的字体,这是没有安装在机器上。这是我的密码
fontFile=“C:\Users\Desktop\abc.otf”fontdb=QtGui.QFontDatabase()id=fontdb.addApplicationFont(fontFile)family=fontdb.applicationFontFamiles(id)font=QtGui.QFont(family[0])打印font.styleName()
@GowthamanIlango。所有这些都没有任何区别。正如我在回答中解释的那样,您需要使用
QFontInfo
。我尝试了QFontInfo,但仍然没有成功。我得到空字符串作为输出。fontinfo.bold()和fontinfo.italic()始终为false。我尝试了fontinfo.weight(),无论我使用什么字体,它总是返回50。@GowthamanIlango。这可能是因为您在Windows上。你能给我一个字体的链接让我测试一下吗?