Qte中文显示

首先转下www.qtcn.org里面的相关内容:
------------------------------------------------------------------------------------------------------------------------------------------------
我的QtEmbedded程序中的中文字符为什么显示成方块?
两个可能的原因:
一是qte的库未编译进对中文textcodec的支持, 解决方案:修改qconfig-qpe.h, 去掉CODEC有关的宏, 重新configure和make

二是程序中选用的字体不是中文字体(默认的字体是Helvetica,没有中文), 需要在程序中指定一个中文字体, 如qte自带的unifont(这个字体大家普遍的看法是看上去像残废), qt4版本里新加入了文泉驿的unicode字体, 可以在源码包里找到,比较漂亮, 推荐。
------------------------------------------------------------------------------------------------------------------------------------------------
接下来谈谈我是怎么做的:
(1)configure的时候首先带-h看下说明,发现默认是full安装,就没有CODEC这些问题,那么显示成方块就是没有中文字体了,我用unifont试了下发现可以了
(2)下载了qtopia-core-opensource-src-4.2.0,把qtopia-core-opensource-src-4.2.0/lib/fonts下面的东西全部copy覆盖掉qt-embedded-free-3.3.5/lib/fonts下的内容,然后用wenquanyi字体,发现效果挺好的.
(3)我的测试程序如下:
#include <qapplication.h>
#include <qpushbutton.h>
#include <qtextcodec.h>
#include <qfont.h>


int main(int argc, char **argv)
{
    QApplication app(argc, argv);
   
    QTextCodec *codec = QTextCodec::codecForName("GBK");
    app.setDefaultCodec(codec);
    app.setFont(QFont("wenquanyi", 10));
   
   
    QPushButton quit(QObject::tr("让世界知道我们都是中国人/r/n五千年的风和雨"), 0 );
   
    quit.resize(100, 100);
    QObject::connect(&quit, SIGNAL(clicked()), &a, SLOT(quit()));    
    a.setMainWidget(&quit);
    quit.show();

    return a.exec();
}
 (4)我也看了www.qtcn.org上面的 Qtopia下安装ttf字体的方法
安装步骤:
1. 将simhei.ttf拷贝到/usr/local/Trolltech/QtopiaCore-4.1.0/lib/fonts/下。
2. 修改上述目录下的fontdir文件。这是一个文本文件,打开后,在文件末尾加入如下一行。
simhei simhei.ttf FT n 50 500 u
但是又说要
freetype 这个font engine的插件,我系统里面已经有了,而且configure默认的就带了这个参数,我按照上面的做法试一试,发现字体很难看,没有wenquanyi的字体好看,郁闷的是怎么知道freetype这个插件起作用没?
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值