qtqml中文/俄文字体不起作用



Im正在为以下设备开发QT/QML(4.7.4)应用程序运行X11。在linux桌面上运行中文和俄文字体工作正常,但当在设备上时就不行了。

从我所做的所有研究和调查来看,我不确定这是QML FontLoader的问题,还是我应该修复X11字体?

我花了几天时间研究fc缓存和xset+fp以及相关的命令没有运气。我还尝试过使用QFontDatabase::addApplicationFont()运气不佳。

如果我应该使用FontLoader,我是否必须告诉整个当字体不同时(当用户切换语言时?)这是一项艰巨的任务。如果可能的话,我宁愿通过X11来解决这个问题。

如果答案在X11中,我需要一些帮助。我从中复制了所有字体Qt发行版安装到设备上,并运行以下命令(以及因为我只需要看其中一个,所以现在添加了中文字体努力知道我有一个解决方案):

(这可能还不完整,因为已经过了几天了)

1. go into the directory that I copied the Qt fonts to and:
   A. mkfontscale .
   B. mkfontdir .
2. sudo xset +fp "/dir/to/qt/fonts/dir"
3. sudo xset fp rehash
4. xset q  (shows whats set)
5. sudo fc-cache -fv
6. export FC_DEBUG=1024  (shows debug info when app starting app or fc-list)

在我的Qt应用程序中,我有:

int ret = fonts.addApplicationFont("/opt/project/lib/fonts/wqy-zenhei.ttc");
if (ret == -1)
   qDebug() << "ERROR - font didnt load";

我没有看到错误消息,所以我的字体显然加载正确。

当我运行应用程序时,我看不到列表中的字体(通过FC_DEBUG和FC列表)。

对于解决这个问题的任何见解/帮助,我将不胜感激。感谢

事实证明,如上所述,我做的事情是正确的。我的qml直接在源代码中使用中文(和其他)字体,但其他qml文件正在翻译中。一旦我选择了语言(我们在启动时有一个选择qml面板),字体就在那里了。现在我只需要解决inital字体没有显示的问题。

相关内容

  • 没有找到相关文章

最新更新