zoukankan      html  css  js  c++  java
  • 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字体效果都要好。

  • 相关阅读:
    Vue:对象更改检测注意事项
    Vue实现简易留言板
    CSS实现三级菜单[转]
    Vue 侦听属性
    Vue-列表渲染 非变异方法
    MYSQL/HIVESQL笔试题(七):HIVESQL(七)
    leetcode算法题基础(四十九) 树BFS
    数据结构基础(八)图Graph
    数据结构基础(七)优先队列 PriorityQueue, 堆Heap
    数据结构基础(六)树
  • 原文地址:https://www.cnblogs.com/buffer/p/1488615.html
Copyright © 2011-2022 走看看