九鼎创展论坛中文版English
登录 | 立即注册 设为首页收藏本站 切换到宽版
查看: 4781|回复: 4
打印 上一主题 下一主题

Qt下,应用程序中中文显示“□□□□□□□□□”

[复制链接]
跳转到指定楼层
楼主
发表于 2016-5-27 16:33:26 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
请教大家,Qt应用程序 中ui界面中我使用了中文,虚拟机下编译,执行,中文显示正常,但是我交叉编译后,放到ARM板子上跑时,中文显示全是“□□□□□□□□”,
网上说;
1. 下载第三方库例如 wenquanyi ,放到板子上 qt/lib/font目录,然后配置环境变量;6818上 /usr/lib/qt/ 只有两个目录,并没fonts目录,于是新建了fonts目录,将wenquanyi的字库文件再加入了fonts目录,配置了环境变量
2. qt应用程序中加入了QTextCodec::setCodecForLocale(QTextCodec::codecForName("wenquanyi"));
3.重新交叉编译后,放到板子上,执行./test -qws -font wenquanyi &,但是中文并没有显示出来。。。。
希望大家给与帮助,谢谢!
回复

使用道具 举报

沙发
发表于 2016-5-27 19:11:08 | 只看该作者
等会我找下资料给你发现,需要在main函数中设置字体。你可以先尝试搜索一下。
回复 支持 反对

使用道具 举报

板凳
发表于 2016-5-27 19:31:42 | 只看该作者
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    QTextCodec::setCodecForTr(QTextCodec::codecForName("utf-8"));//tr()函数支持中文字符
    QTextCodec::setCodecForCStrings(QTextCodec::codecForName("utf-8"));//""直接支持中文字符
    QTextCodec::setCodecForLocale(QTextCodec::codecForName("utf8"));

     //arm需要取消屏蔽
       QFont font;
       font.setPointSize(160);
       font.setFamily(("wenquanyi"));
       font.setBold(false);
       a.setFont(font);

    login w;
    w.show();

    return a.exec();
回复 支持 反对

使用道具 举报

地板
 楼主| 发表于 2016-5-30 11:22:27 | 只看该作者
smaller 发表于 2016-5-27 19:31
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);

你还是没明白我说的啊,我怀疑是板子上字库没有弄好
回复 支持 反对

使用道具 举报

5#
 楼主| 发表于 2016-5-31 15:05:52 | 只看该作者
已解决,是字库的问题,下载DroidSans-Fallback.ttf 这个就可以了。。。
测试效果如下:

B995DA8901F32ADEA2BB37D855C5F5A4.png (32 KB, 下载次数: 296)

B995DA8901F32ADEA2BB37D855C5F5A4.png
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|深圳市九鼎创展科技官方论坛 ( 粤ICP备11028681号-2  

GMT+8, 2024-4-25 14:47 , Processed in 0.021644 second(s), 20 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表