开发板和qt中文显示异常解决方法记录

来源:互联网 发布:淘宝店铺过户 编辑:程序博客网 时间:2024/06/16 22:44

开发板和qt中文显示异常处理

使用beagleboneblack开发,陆陆续续遇到很多问题,再次记录下,开发板中文显示异常解决办法。

问题描述

我的板子是beagleboneblack,移植的官方系统 bone-debian-8.4-iot-armhf-2016-05-13-4gb.img,没有图形界面,移植qt5.6并且安装了X图形系统后,通过xinit启动qt程序,发现qt中文乱码或者无法显示,并且开发板终端命令行也无法打印中文。以下是解决办法。

安装系统字库

http://hwcrazy.com/7ff6162065f611e183d8000d601c5586/
首先,开发板的命令行和文本中无法使用中文,是因为系统没有安装字库或者设置错误,使用locale 查看设置信息。
使用命令sudo locale-gen en_US.UTF-8安装本地字库
然后修改/etc/default/locale
1 LANG=”zh_US.UTF-8”
2 LANGUAGE=”zh_US.UTF-8”
到此安装完毕,使用locale -a可以查看到刚刚安装的字库,有几十个;如果只有几个那么就是安装失败。
最后一步 重启
重启后,就可以在系统中使用中文了。

安装qt字库

系统中安装了字库后,当我使用xinit qtTEST时,发现我的qt程序还是不能显示中文,我的现象是中文用空格取代了。通过百度找到解决办法,原文blog。
不过,在此我还是要记录一下,因为这个轮子太少了,为了解决这个中文问题,耽误了很多时间。

首先下载qt的字库 DroidSansFallback.ttf 密码: kf9d
然后解压文件,并复制到/lib/fonts/

最后在qt代码中使用字库

#include <QApplication>#include <QPushButton>#include <QDebug>#include <QFontDatabase>int main(int argc, char *argv[]){    QApplication a(argc, argv);    int id = QFontDatabase::addApplicationFont("/lib/fonts/DroidSansFallback.ttf");    QString msyh = QFontDatabase::applicationFontFamilies (id).at(0);    QFont font(msyh,10);    qDebug()<<msyh<<endl;    font.setPointSize(20);    a.setFont(font);    QPushButton *btn = new QPushButton("a中文b我是中文!");    btn->show();    return a.exec();}

在开发板中qmake -project;qmake;make;run
问题完美解决


原创粉丝点击