QT/E 更换字体问题

在解决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的配置文件,内容如下:

  代码:
  1. ...
  2. unifont unifont.bdf FT n 50 160 u
  3. ...

每一行是关于一种字体的设置,对应列的定义如下:
<字体名称> <字体文件名> <字体渲染类型> <是否斜体> <是否粗体> <尺寸> <字体标志> [尺寸列表]
其中,
<字体渲染类型>:可以为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字体效果都要好。

原文地址:https://www.cnblogs.com/buffer/p/1488615.html