您的位置:首页 > 编程语言 > Qt开发

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

2017-09-28 11:42 330 查看

开发板和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

问题完美解决
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  qt 异常