P.P.S .:将这些字体合并为一个字体是不可能的,因为它们是专有字体。
相关讨论
您可以在运行时组合字体并将其传递到addApplicationFontFromData中吗,这样您就不会分发组合字体(IANAL)
您检查了fontconfig手册吗? AFAIK,当找不到字体中的特定字形时,您应该能够配置系统范围的(或每个用户)回退。
该功能在Qt中称为"字体后备",如果您使用fontconfig,该功能应该可以使用。 (虽然不知道配置详细信息)。 Qt中有用于非fontconfig情况的代码,但目前似乎已损坏(从Qt 5.1 / 5.2开始)
我认为您错过了重点。我不需要"字体后备",我需要"字形后备"。 Fontconfig支持字体回退,但字形回退必须在应用程序级别进行处理。
@ratchetfreak我认为这不是那么简单的方法。我必须解析每个字体文件并将它们合并为一个ttf格式的数据,然后将其传递给Qt,我认为这是很多工作。
另外,在QtEmbedded上不支持fontconfig
QtEmbedded上支持FontConfig:doc.qt.io/qt-5/qt-embedded-fonts.html
下载Qt Framework。进入网址http://qt.nokia.com/downloads,选择中间的标签LGPL,然后下载Qt libraries 4.7.0 for linux/x11(199MB)更新:找不到的话可以直接到http://qt-project.org/downloads,在页面中间的Qt Library里选最新的Qt libraries 4.8.3 for Linux/X11 (223 MB)
2
解压文件。进到存放下载文件的目录下执行tar -zxvf qt-everywhere-opensource-src-4.7.0.tar.gz
其中qt-everywhere-opensource-src-4.7.0.tar.gz是刚下载文件的文件名
3
默认情况下系统是没有g++编译环境的。需要手动安装。执行sudo apt-get install build-essential。如果提示找不到包可以更新一下源。方法为sudo gedit /etc/apt/sources.list编辑源列表。然后执行sudo apt-get update
4
执行sudo apt-get install libx11-dev libfreetype6-dev libavahi-gobject-dev libSM-dev libXrender-dev libfontconfig-dev libXext-dev
5
把解压后的文件夹拷贝到英文目录(非tmp)下,进入该文件夹执行./configure,然后选择o(开源),接着选择yes(同意)。运行结束后提示Just run 'make'等信息后表示这步成功了。
6
make。执行make,这步需要很长时间(我用了4个小时T_T)
7
安装qt。执行sudo make install,这步较快,文件安装在/usr/local/Trolltech/Qt-4.7.0
8
设置环境变量。执行vi ~/.bashrc 添加如下内容:
QTDIR=/usr/local/Trolltech/Qt-4.7.0/
PATH=$QTDIR/bin:$PATH
MANPATH=$QTDIR/doc/man:$MANPATH
LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
export QTDIR PATH MANPATH LD_LIBRARY_PATH
之后重启。如果不会用vi可以执行vi语句后输入:$回车,然后输入o进入输入模式,将上面的字段拷贝后按esc,然后输入大写的ZZ即可。
9
接下来就可以按照
qmake -project
qmake
make
的步骤执行qt程序了,不过有可能会遇到qmake找不到的情况,这时候输入 sudo apt-get indtall qt4-dev-tools重启就可以了,这步是安装designer/assistant,还是很有用的。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)