转自:http://blog.csdn.net/yanjun_wang/archive/2010/12/18/6083685.aspx

花了不少时间,走了不少弯路,终于编出了想要的东西 。网上相关的文章过于陈旧,所在此与大家分享,希望能有帮助。。

       在做嵌入式GUI的开发过程当中,汉字的显示当然也是很重要的一部分了。字体的美观且又体积小,读取速度快,是嵌入式GUI最为关心的问题。考虑到这些问题,Qt 为了大家提供了,一种体积小,读取速度快的字体格式--qpf 字体(具体内容其它地方都有介绍)。那么如何才能得到qpf格式的字体呢?Qt 在给出格式的同时,又提供了一个制作工具--makeqpf .但是现在的版本默认configure 编译,不会把这个工具编译出来。但是可以自己找到源码单独并编译。下面是制作过程:

http://blog.csdn.net/yanjun_wang/archive/2010/12/18/6083685.aspx

1、 编译linux x11 下的makeqpf .(假设已经成功编译出了,QT-4.7.0. 的库。编译环境已经搭建成功)。

2、 #cd  qt-everywhere-opensource-src-4.7.0

     #cd  tools/makeqpf/        //进入makeqpf的源码

     #qmake  -project

     #qmake 

     #make

3、 如上进行编译,这时会出下如下的错误:

在包含自 ../../include/QtCore/private/qharfbuzz_p.h:1 的文件中,
                 从 ../../include/QtGui/private/../../../src/gui/text/qtextengine_p.h:72,
                 从 ../../include/QtGui/private/qtextengine_p.h:1,
                 从 ../../include/QtGui/private/../../../src/gui/text/qfontengine_p.h:60,
                 从 ../../include/QtGui/private/../../../src/gui/text/qfontengine_qpf_p.h:56,
                 从 ../../include/QtGui/private/qfontengine_qpf_p.h:1,
                 从 qpf2.h:45,
                 从 main.cpp:44:
../../include/QtCore/private/../../../src/corelib/tools/qharfbuzz_p.h:57:29: 错误:harfbuzz-shaper.h:没有那个文件或目录

说找不到harfbuzz-shaper.h 这个头文件。

4、 需要我们指定一下。打开makeqpf.pro 修改include 路径。

     INCLUDEPATH += . ../../src/3rdparty/harfbuzz/src

     保存退出

5、 #qmake 

     #make

     重新编译,又出错了。。汗。。

     ../../include/QtCore/../../src/corelib/io/qdir.h:108: 错误:expected identifier before numeric constant
     ../../include/QtCore/../../src/corelib/io/qdir.h:108: 错误:expected `}' before numeric constant
     ../../include/QtCore/../../src/corelib/io/qdir.h:108: 错误:expected unqualified-id before numeric constant

     这个错误很是头疼,找到文件打开。。

     #cd  systemTool/qt-everywhere-opensource-src-4.7.0/src/corelib/io

     #vi   qdir.h   找到108行

     我是真没有发现什么错误。。。折腾办天,没办法,屏蔽掉。。(后来看制作的字体,也没什么影响)

    enum SortFlag { Name        = 0x00,
                    Time        = 0x01,
                    Size        = 0x02,
  //               Unsorted    = 0x03,       (大家也可以找一找)
                    SortByMask  = 0x03,

                    DirsFirst   = 0x04,
                    Reversed    = 0x08,
                    IgnoreCase  = 0x10,
                    DirsLast    = 0x20,
                    LocaleAware = 0x40,
                    Type        = 0x80,
                    NoSort = -1
#ifdef QT3_SUPPORT
                  ,DefaultSort = NoSort
#endif
    };

    保存,并退出。

6、 编译,终于过去了。在目录下生成了 makepqf ,现在可以运行一下看看了。。呵呵

这个是windws 下的一个makepqf.exe 工具。。

7、 编译windows下的makepqf , 如果要是能先编译这个,那就会省不少劲了。。走了不少弯路。

     windows下的好多了,不需要做什么修改。

     进行  C:/Qt/2010.05/qt/tools/makeqpf  文件夹。

     将makeqpf.pro 拖到QtCreator 中编译即可。

    (必须在安装的目录下编译,拷到别的地方,就又会出像上面一样的很多问题)。晕死。

8、 好了,现在两个版本的都有,大家好好用吧。

9、 没有时间的朋友么可以直接下载,地址如下:

http://download.csdn.net/source/2919209

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/yanjun_wang/archive/2010/12/18/6083685.aspx

Logo

更多推荐