Chinaunix首页 | 论坛 | 博客
  • 博客访问: 30995308
  • 博文数量: 230
  • 博客积分: 2868
  • 博客等级: 少校
  • 技术积分: 2223
  • 用 户 组: 普通用户
  • 注册时间: 2009-10-08 21:48
个人简介

Live & Learn

文章分类

全部博文(230)

文章存档

2022年(2)

2019年(5)

2018年(15)

2017年(42)

2016年(24)

2015年(13)

2014年(1)

2012年(5)

2011年(58)

2010年(56)

2009年(9)

我的朋友

分类: 嵌入式

2010-08-30 17:38:42

系统:Fedora 9   开发板:micro2440   Qt:4.6.3   Qt库路径:/usr/local/qt463lib/lib

如果你急于在ARM开发板上看到Qt显示中文,而不介意稍次的效果,可以在运行Qt程序时,增加设置字体的参数,比如运行名为hello的Qt程序:./hello -fn unifont

1.首先,需要文泉驿字体文件,你可以从网络上下载得到这些文件,比如,wenquanyi_160_75.qpf。将全部文泉驿字体文件复制到ARM开发板上的Qt字体库中,在这个例子中,Qt字体库的路径是/usr/local/qt463lib/lib/fonts

2.你还需要增加一个ARM开发板上的环境变量,在/etc/profile文件中增加:

export QT_QWS_FONTDIR=/usr/local/qt463lib/lib/fonts

3.在main.cpp中,修改   

    QApplication a(argc, argv);
    QTextCodec *codec = QTextCodec::codecForName("gbk");
    QTextCodec::setCodecForLocale(codec);
    QTextCodec::setCodecForCStrings(codec);
    QTextCodec::setCodecForTr(codec);
    QFont font("wenquanyi",6);
    a.setFont(font);

4.需要说明的是,QTextCodec *codec = QTextCodec::codecForName("gbk")如果不可行,你可以再试试QTextCodec *codec = QTextCodec::codecForName("UTF-8")

//===================================================================================

首先要将字体库移到对应的QT的字体库的文件夹下!比如/x86/lib/fonts、/arm/lib/fonts下,我使用的是文泉驿的字体库!

第一种方法是:需要的字体库文件,一般是多个。具体移植那一个,看你使用的字库是什么了
在程序中需要这样设置:

 QTextCodec::setCodecForTr(QTextCodec::codecForName("utf8"));
  QTextCodec::setCodecForCStrings(QTextCodec::codecForName("utf8"));

设置使用utf-8编码也就是unicode编码了,这样在tr和string的都是unicode的编码了,根据字库的索引就能对应相应的字符了。

然后设置字体:

//字体设置
  QFont font("wenquanyi",12,QFont::Bold); //使用wenquanyi字体
  this->setFont(font);

//这样就设置了字体了,中文一般使用wenquanyi字体就可以了。很好的。

这样的文件的修改如果在程序较大,头文件较多的程序中比较麻烦,

希望你的早点好用!!
阅读(3363) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~