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

开发板和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
问题完美解决


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值