首页| 论坛| 消息

标题:有关点阵字库的问题
作者:楠木成林
日期:2010-04-09 20:00
内容:

想要在嵌入式2440板子上显示较小的字,手里下了几个bdf的字库,但是在fondir中加载字库后,用setFont(QFont)设置好后并没有效果,请问如何才能把点阵 字库加载进去呢?希望有兴趣的朋友能一起交流。谢谢!


#1 [楠木成林 04-10 11:14]
程序是如何去寻找需要的字库呢?
我们可以在QT文件系统目录下:/mnt/gui/qtopia/lib/fonts中找到qt自带的字库文件,
cd /mnt/gui/qtopia/lib/fonts
ls
unifont.bdf unifont_160_50_t5.qpf
helvetica_100_50.qpfhelvetica_240_75_t15.qpf
helvetica_100_50_t10.qpfhelvetica_240_75_t5.qpf
……
同时该目录下还有一个fontdir文件:
vi fontdir
……
helvetica helvR18.bdf BDF n 50 180 u
helvetica helvR24.bdf BDF n 50 240 u
# Unifont is available in source form from http://czyborra.com/unifont/
unifont unifont.bdf BDF n 50 160 u
babelfish babelfish.ttf FT n 50 0 s
smallsmooth verdana.ttf FT n 50 0 s 90
……
每一行是关于一种字体的设置,对应列的定义如下:
[尺寸列表]
main.cpp
#include
#include "mainwidget.h"
int main(int argc, char **argv)
{QApplication app(argc,argv);
app.setFont(QFont("unifont",16,50));
QTranslator translator( 0 );
translator.load( QString("hello_CN.qm"),".");
app.installTranslator( &translator );
MyMainWidget *mymainwidget = new MyMainWidget(0);
mymainwidget->setGeometry(10,30,280,200);
app.setMainWidget(mymainwidget);
mymainwidget->show();
return app.exec();
}
2. 生成mymain.pro工程文件
progen –t app.t –o mymain.pro
修改mym ..
#2 [tyhj2000 04-12 09:59]
在qt4中对qpf文件不需要fontdir文件就可以直接识别的,setFont函数没错,要设置的字体你的fontdir目录中得确实有
#3 [小u爸爸 04-12 11:13]
共同关注,我用的是qpf字库,目录中没有fontdir文件。显示中文没有问题,但不能改变文字大小,也不能加粗。
是不是需要加入fontdir这个文件?楼上的能否介绍详细点?谢谢
#4 [tyhj2000 04-20 15:02]
QT4以上是不需要的,只要在目标板上有相应字体的qpf文件就可以了,setFont()中的font要设的和qpf文件字体一样才行,不然没有相应字体是改不了大小,加粗什么的,就是说,如果你想要设一个粗体的文件,\lib\fonts文件夹中就必须有加粗字体的qpf文件

回复 发表
主题 版块