【发布时间】:2020-08-01 20:03:27
【问题描述】:
我正在使用pyqt5做一个软件。我使用了 Consolas 字体,但我需要先下载并安装它,所以我的问题是该程序在另一个没有安装字体的设备上是否可以正常工作?
【问题讨论】:
我正在使用pyqt5做一个软件。我使用了 Consolas 字体,但我需要先下载并安装它,所以我的问题是该程序在另一个没有安装字体的设备上是否可以正常工作?
【问题讨论】:
缺少字体是一个已知问题,如果字形不存在,QFont 会使用回退:
来自QFont - Detailed description(强调我的)
当您创建一个 QFont 对象时,您指定了您希望字体具有的各种属性。 Qt 将使用具有指定属性的字体,或者如果不存在匹配的字体,Qt 将使用最接近的匹配安装的字体。
[...]
字体匹配算法的工作原理如下:
搜索指定的字体系列(由 setFamilies() 设置)。
如果没有找到,那么如果设置了指定的字体家族存在并且可以用来表示正在使用的书写系统,就会被选中。
如果不是,则选择支持书写系统的替换字体。字体匹配算法将尝试为 QFont 中设置的所有属性找到最佳匹配。这是如何完成的因平台而异。
如果系统上不存在可以支持该文本的字体,则会在其位置显示特殊的“缺失字符”框。
注意
如果所选字体虽然支持一般的书写系统,但缺少一个或多个特定字符的字形,那么 Qt 将尝试为这个或这些特定字符查找备用字体。可以使用 NoFontMerging 样式策略禁用此功能。
见:
【讨论】: