相同的QFont配置导致嵌入式Linux和Linux Ubuntu之间的不同字体

时间:2015-10-26 13:29:35

标签: linux qt fonts

我遇到了一个问题:我使用Qt 4.8为嵌入式Linux开发了一个应用程序,其中所有字体都正确而且很好。但是当我为Linux Ubuntu编译相同的应用程序时,所有字体都变得杂乱无章。

确保两者具有相同的字体配置,我使用QFont::toString()和Ubuntu配置读取嵌入式编译中的一个标签的字体配置,它们都是等号(DejaVu Sans,20,-1,5,50,0,0,0,0,0 )。

我还使用QApplication::font()中的相同功能检查了默认字体配置,一切都是一样的。

以下是嵌入式Linux中正确版本的图片:

Correct fonts

以下是具有相同配置的标签图片:

Wrong fonts

上面提到的字体值是关于顶部中心的大标题字体。

那么可能会发生什么事实我正在使用相同的Qt版本(4.8),相同的操作系统(Linux,甚至是一个很难的嵌入式ARM,其他是Ubuntu 14)和两者中的相同字体配置?我怎么能解决这个问题,以便Ubuntu字体与嵌入式Linux完全一样?

1 个答案:

答案 0 :(得分:1)

安装相同的字体。我的猜测是,由于文本外观粗糙,DejaVu Sans没有安装在你的Ubuntu系统上; Qt可能选择了替代字体。

请注意,QFont :: toString()仅返回您设置的内容,而不返回底层字体系统选择的内容。使用QFontInfo查看真实的'字体是:

  

QFontInfo类提供与QFont相同的访问功能,例如:   family(),pointSize(),italic(),weight(),fixedPitch(),styleHint()   但是,虽然QFont访问函数返回的值是   set,QFontInfo对象返回适用于该字体的值   实际上将用于绘制文本。