首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何为嵌入式Linux在Qt中定位和使用字体?

如何为嵌入式Linux在Qt中定位和使用字体?
EN

Stack Overflow用户
提问于 2015-12-02 11:37:28
回答 1查看 4.8K关注 0票数 2

这个问题可能与这个问题有关:QT去哪里寻找字体?

我使用Ubuntu14.04和Qt进行嵌入式4.8,并希望在全球范围内更改我的应用程序的字体,但我只能使用我安装的字体中的一个非常小的子集。

我的应用程序的样式是从我编写的CSS文件中加载的:

代码语言:javascript
复制
QWidget {
   font-family: "DejaVu Sans"; /*or any other font*/
}

问题是Qt似乎无法找到我安装的字体。根据文档,为嵌入式Linux应用程序部署Qt Qt应用程序在lib/ fonts /目录中查找字体,特别是查找一个名为fontdir的文件。我不知道这个文件是关于什么的,我也找不到它。字体的完整路径(用于调试构建)是: /usr/local/Trolltech/QtEmbedded-4.8.6-x86-dbg/lib/fonts

我使用可以找到的QFontDatabase 在Qt 4.8docu中打印我所有可用的字体。不幸的是,输出是:

代码语言:javascript
复制
DejaVu Sans: Normal (11)
fixed: Normal (7 12)
helvetica: Normal (8 10 12 14 18 24) Italic (8 10 12 14 18 24) Bold (8 10 12 14 18 24) Bold Italic (8 10 12 14 18 24)
japanese: Normal (23)
micro: Normal (4)
unifont: Normal (16)

但我已经安装了更多的字体。例如,DejaVu Sans也存在于粗体和其他类型中,但只有“正常”类型。这里只有一小部分字体位于我的字体文件夹中(这些字体也位于Qt文件夹中,用于发布和调试):

代码语言:javascript
复制
couri.pfa
cour.pfa
cursor.pfa
dejavu_sans_11_50.qpf2
DejaVuSans-BoldOblique.ttf
DejaVuSans-Bold.ttf
DejaVuSansMono-BoldOblique.ttf
DejaVuSansMono-Bold.ttf
DejaVuSansMono-Oblique.ttf
DejaVuSansMono.ttf
DejaVuSans-Oblique.ttf
DejaVuSans.ttf
DejaVuSerif-BoldOblique.ttf
VeraMono.ttf
VeraSeBd.ttf
VeraSe.ttf
Vera.ttf
  1. fontdir文件用于什么?我需要它吗?如何创建它?
  2. 为了让Qt找到我安装的所有字体,我需要做什么?
  3. 有没有一种方法可以简单地使用我感兴趣的字体的副本,并把它放在我的应用程序的子目录中,把它当作图标来处理,这样我就不必在所有的系统位置上乱搞了?

编辑:,根据这个线程,我认为我也不支持TTF字体。我查看了我的字体,似乎找到了所有的*.qpf和*.qpf2字体。因此,我将尝试将我的TTFs转换为QPF。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-12-02 14:49:37

fontdir文件用于什么?我需要它吗?如何创建它?

只有当使用QPF字体时才需要此文件,QPF字体是Qt特定的“轻量级”格式。Qt工具makeqpf使用该文件(据我所知)。

为了让Qt找到我安装的所有字体,我需要做什么?

如果Qt是用- no -freetype编译的,那么就不能使用TTF字体,因此QFontDatabase找不到。要启用TTF支持,必须在不使用此编译配置标志的情况下编译Qt。我重新编译了它,在/usr/local/Trolltech/QtEmbedded-4.8.6-x86-dbg/lib/fonts中找到了所有的字体。

有没有一种方法可以简单地使用我感兴趣的字体的副本,并把它放在我的应用程序的子目录中,把它当作图标来处理,这样我就不必在所有的系统位置上乱搞了?

是。您可以简单地使用QFontDatabase::addApplicationFont,对于支持的字体格式,它不应该失败。

请注意,我决定重新编译Qt,因为我不想处理来自Qt的makeqpf工具,该工具可用于将TTF字体转换为QPF格式。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34041799

复制
相关文章

相似问题

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