我遇到了一个问题:我使用Qt 4.8为嵌入式Linux开发了一个应用程序,其中所有字体都正确而且很好。但是当我为Linux Ubuntu编译相同的应用程序时,所有字体都变得杂乱无章。
确保两者具有相同的字体配置,我使用QFont::toString()
和Ubuntu配置读取嵌入式编译中的一个标签的字体配置,它们都是等号(DejaVu Sans,20,-1,5,50,0,0,0,0,0
)。
我还使用QApplication::font()
中的相同功能检查了默认字体配置,一切都是一样的。
以下是嵌入式Linux中正确版本的图片:
以下是具有相同配置的标签图片:
上面提到的字体值是关于顶部中心的大标题字体。
那么可能会发生什么事实我正在使用相同的Qt版本(4.8),相同的操作系统(Linux,甚至是一个很难的嵌入式ARM,其他是Ubuntu 14)和两者中的相同字体配置?我怎么能解决这个问题,以便Ubuntu字体与嵌入式Linux完全一样?
答案 0 :(得分:1)
安装相同的字体。我的猜测是,由于文本外观粗糙,DejaVu Sans没有安装在你的Ubuntu系统上; Qt可能选择了替代字体。
请注意,QFont :: toString()仅返回您设置的内容,而不返回底层字体系统选择的内容。使用QFontInfo查看真实的'字体是:
QFontInfo类提供与QFont相同的访问功能,例如: family(),pointSize(),italic(),weight(),fixedPitch(),styleHint() 但是,虽然QFont访问函数返回的值是 set,QFontInfo对象返回适用于该字体的值 实际上将用于绘制文本。