移植到ARM的qt4.6.3显示中文的问题

晨曦之光 发布于 2012/04/13 11:19
阅读 457
收藏 0

移植了QT4.6.3的ARM无法正常的现实中文

如果是在X86平台上时候,使用QTextCodec::setCodecForTr(QTextCodec::codecForLocale());来设置显示中文

但是在ARM平台上却不行,我们需要移植一些中文字体库,这里使用的是QT自带的中文字体库,wenquanyi_120_50.qpf

放在QT的安装目录下 /usr/local/Trolltech/lib/fonts下面

在/etc/profile中导出路径

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

 

然后修改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);

 

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

 

 

wenquanyi字体的说明

wqx wenquanyi_120_50.qpf QPF n 50 120
wqx wenquanyi_120_75.qpf QPF n 75 120
wqx wenquanyi_130_50.qpf QPF n 50 130
wqx wenquanyi_130_75.qpf QPF n 75 130
wqx wenquanyi_150_50.qpf QPF n 50 150
wqx wenquanyi_150_75.qpf QPF n 75 150
wqx wenquanyi_160_50.qpf QPF n 50 160
wqx wenquanyi_160_75.qpf QPF n 75 160
 
在这里第一列为name,第二列为file,第3列为renderer,字型格式,如BDF,TTF,QPF等,第4列n表示iitalic,表示是否为斜体字,第5列为weight,字体宽度,50是Normal,而75是Bold ,第6列为size字号,120为12pt.第7列为flag可忽略不写,有3个选者,s=smooth(anti-aliased),u=unicode range when saving(default is Latin1), a=ASCII range when saving(default is Latin1).
 
这样只要按照前面i18n的方法,app->setfont("wqx");
就可以显示很好看的中文字体了,

 


原文链接:http://blog.csdn.net/xie376450483/article/details/5902140
加载中
返回顶部
顶部