您的位置:首页 > 编程语言 > Qt开发

QT/E 更换字体问题

2013-11-23 14:23 218 查看
在解决pda软件字体的问题。现在已经发现根本原因:qte自带的默认字体本身不好(标准特级残废)。通过查找资料找到了几种种解决途径:

1 使用其它unicode版本的ttf字体(windows下有很多ttf字体,但不知是不是unicode编码),但这个需要安装freetype插件。我编译好了一个新版本,但还没有安装成功。后来编译了一个freetype库,可以使用windows下的ttf字体了。
2 使用bdf字体,可是发现网上没人这样做,有人告诉的方法不对。
3 使用qt的一个工具转化。。。。。。。。
郁闷了好久。

其实,QT/E支持好几种字体,我成功用上了三种,更换也没有那么麻烦。

QT/E安装字体的方法:

第一步:

在Qt/Embedded的$QTDIR$/lib/fonts目录中有一个fontdir的配置文件,内容如下:

代码:
...

unifont unifont.bdf FT n 50 160 u

...

每一行是关于一种字体的设置,对应列的定义如下:
<字体名称> <字体文件名> <字体渲染类型> <是否斜体> <是否粗体> <尺寸> <字体标志> [尺寸列表]
其中,
<字体渲染类型>:可以为TTF,BDF,QPF三种类型;
<是否斜体>:y表示为斜体,n表示正常体;
<是否粗体>:50表示正常体,75表示粗体;
<标志>:a使用ASCII字符集,u使用unicode字符集,s使用锯齿平滑(anti-aliased);
<尺寸>:0,则系统从[尺寸列表]中提取可以转换的字体尺寸;

如果你要在你的QT/E程序中使用新字体,那么你需要在这个文件的第一行添加如上面所示的代码。
注意:点阵字体不能使用锯齿平滑! BDF字体的 <字体渲染类型>也要用 FT
例如我添加的:wenquanyi wenquanyi.bdf FT n 50 0 u 100 120
如果你用TTF字体 这一行差不多:wenquanyi wenquanyi.ttf FT n 50 0 u 100 120
如果你用QPF字体 这一行差不多:wenquanyi wenquanyi.qpf QPF n 50 100 u
qpf只包含了一种字号的字体。

第二步:
将你的新字体文件放到$QTDIR$/lib/fonts下。

第三步:
在你的应用程序的main函数中为新建的QApplication实例设置字体,
例如:a.setFont(QFont("wenquanyi",10));
第一个参数要和上面fontdir文件的字体名称一样,第二个参数是字号。

在实践过程中,我发现文泉译的ttf字体显示有点问题,可能是我参数设置不好。
推荐大家使用qtopia-core-opensource-src-4.1.1 里面自带的文泉译BDF版点正宋体字体。我的板子是:2410 + 3.2LCD+linux2.6.11 使用10号大小时,比原有的字体 、微软、方正等ttf字体效果都要好。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: