1)、平台:windows
2)、python3.8、PyQt5/PySide2 5.14.1
二、过程
通过QFontDatabase.addApplicationFont()添加第三方字体库,添加失败。查找原因,无报错信息,只发现方法返回-1;官方文档有提示:
之后就开始各种绕,始终未解决问题。偶然尝试修改路径,解决了问题:
三、demo来自 github上开源项目。
四、结束语
虽然问题解决了,但是为什么加载路由是相对于项目主目录,而不是执行py文件。
目前从事嵌入式系统下的Qt应用程序开发;程序需要支持中文,需要想qt的字体目录下导入中文字体;
目前导入为微软雅黑字体;当时不知道setfamily的时候需要使用的是什么名称;
该如何解决呢?
Qt已经给出了解决方案了;
使用QFontDatabase类;
根据帮助文档:
Detailed Description
The QFontDatabase class provides information about the fonts available in the underlying window system.
具体描述:
QFontDatabase类提供了当前系统下可用的字体的信息;
该类其中一个函数:
QStringList QFontDatabase::families ( WritingSystem writingSystem = Any ) const
Returns a sorted list of the available font families which support the writingSystem.
返回支持writingSystem的所有字体类型
那么就可以使用这个函数了解我们需要的信息;
例如:
[cpp] view plaincopy
QFontDatabase database
foreach (const QString &family, database.families())
{
qDebug()<<family
}
以上这段代码就可以枚举出系统支持的所有字体的名称;
[cpp] view plaincopy
QFontDatabase database
foreach (const QString &family, database.families(QFontDatabase::SimplifiedChinese))
{
qDebug()<<family
}
以上这段代码就可以枚举出系统中所有支持中文的字体名称。
根据打印信息就能知道微软雅黑字体的名称了:
Microsoft YaHei
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)