开发板上QT界面中文字体显示

时间:2021-06-15 06:35:58

     最近尝试在开发板上的qt界面中显示中文,根据网上的教程,下载了wenquanyi的字体放到根文件系统的/usr/local/Trolltech/QtEmbedded- 4.5.3-arm/lib/fonts目录下,然后在程序中加入如下语句:

QTextCodec::setCodecForLocale(QTextCodec::codecForName("UTF-8"));

QTextCodec::setCodecForTr(QTextCodec::codecForName("UTF-8"));       //支持Tr中文

QTextCodec::setCodecForCStrings(QTextCodec::codecForName("UTF-8"));//支持中文文件名显示

QFont font;

font.setPointSize(120);//设置显示12号字体

font.setFamily(("wenquanyi"));

font.setBold(false);

app.setFont(font);

即可在开发板上显示中文。

     但是,遇到一个很纠结的问题,就是我在上述代码中无论设置字体的字号是多少,总是显示16号字体,无奈之下,就去网上找了很多资料,后来通过查阅这篇文章,让我受到了启发:http://blog.csdn.net/zerokkqq/article/details/6332212

具体排查的操作如下:

     我先将wenquanyi的其他字体移走,只留下wenquanyi_160_75.qpf字体,然后在程序中设置显示wenquanyi_160_75.qpf字体,结果能正常显示。然后我再将wenquanyi_160_75.qpf字体字体移走,移入wenquanyi_120_50.qpf字体,然后程序中设置显示wenquanyi_120_50.qpf字体,编译运行之后提示无法找到wenquanyi_160_75.qpf。。。真是无语了,我程序中明明没有设置调用wenquanyi_160_75.qpf字体啊!很是奇怪,没办法我抱着一丝丝希望将板子重启了一下,再运行程序,居然就可以了我去!!

      我以为字体大小又不能设置了,于是又在字体文件夹下添加wenquanyi_160_75.qpf字体,然后在程序中将wenquanyi_120_50.qpf字体改成wenquanyi_160_75字体,结果仍然能正确显示。再切换显示wenquanyi_120_50.qpf字体,仍然能正常显示了。(通过下述可知,这很奇怪,难道要先移走wenquanyi_160_75.qpf,等可以正常显示wenquanyi_120_50.qpf之后再移入wenquanyi_160_75.qpf,然后再在程序中切换显示字体就可以了?)

       我怀疑是不是第一次设置不能设置成显示wenquanyi_160_75字体?通过验证发现果然不是这种无厘头的可能。于是我按照上述博客文章中的方法,在字体文件夹下只留wenquanyi_120_50.qpf和wenquanyi_160_75.qpf,然后将wenquanyi_120_50.qpf改成wenquanyi12_120_50.qpf,在font.setFamily()语句中设置显示wenquanyi12,然后问题就解决了!