首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用QFont获取字体文件的样式

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

Stack Overflow用户
提问于 2015-05-21 19:47:26
回答 1查看 2.8K关注 0票数 0

在QFont中是否有一个命令可以获得字体的样式。我想出了如何获得字体文件的姓氏,而不是文件的特定样式。我找到了一个命令,它返回与字体系列关联的整个样式列表。

代码语言:javascript
复制
    styleList = QtGui.QFontDatabase.styles(fontFamilyName)

我需要特定字体文件的精确样式。例如,如果我将arialb.ttf作为输入,我应该得到姓氏: Arial;style:粗体。有什么想法吗?

但是我正在尝试那些没有安装在机器上的字体。这是我的密码。

代码语言:javascript
复制
    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()
EN

回答 1

Stack Overflow用户

发布于 2015-05-21 21:55:20

您应该始终使用QFontInfo获取有关字体的准确信息。QFont只会显示所请求的内容,而不是系统实际能够提供的内容:

代码语言:javascript
复制
>>> font = QtGui.QFont('Arial')
>>> font.family()
'Arial'
>>> fontinfo = QtGui.QFontInfo(font)
>>> fontinfo.family()
'Helvetica'

我没有在我的系统上安装"Arial“,所以字体解析为最接近的等价物,即"Helvetica”。要获得样式,可以这样做:

代码语言:javascript
复制
>>> fontinfo.styleName()
'Regular'

或者直接查询属性:

代码语言:javascript
复制
>>> fontinfo.bold()
False
>>> fontinfo.italic()
False
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30383029

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档