九鼎创展论坛

标题: Qt下,应用程序中中文显示“□□□□□□□□□” [打印本页]

作者: 云开见月明    时间: 2016-5-27 16:33
标题: Qt下,应用程序中中文显示“□□□□□□□□□”
请教大家,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 &,但是中文并没有显示出来。。。。
希望大家给与帮助,谢谢!
作者: smaller    时间: 2016-5-27 19:11
等会我找下资料给你发现,需要在main函数中设置字体。你可以先尝试搜索一下。
作者: smaller    时间: 2016-5-27 19:31
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
smaller 发表于 2016-5-27 19:31
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);

你还是没明白我说的啊,我怀疑是板子上字库没有弄好
作者: 云开见月明    时间: 2016-5-31 15:05
已解决,是字库的问题,下载DroidSans-Fallback.ttf 这个就可以了。。。
测试效果如下:
[attach]1473[/attach]

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

B995DA8901F32ADEA2BB37D855C5F5A4.png





欢迎光临 九鼎创展论坛 (http://bbs.9tripod.com/) Powered by Discuz! X3.2