qt qml中文/俄文字体不起作用

时间:2012-01-30 21:51:57

标签: qt fonts x11 qml fontconfig

我正在为一台设备开发QT / QML(4.7.4)应用程序 运行X11。在Linux桌面上运行中文和俄文字体 工作得很好,但是在设备上却没有。

从我所做的所有研究和调查中我不确定是否 这是一个QML FontLoader问题,或者我应该修复X11字体?

我花了几天时间研究fc-cache和xset + fp以及相关的问题 没有运气的命令。我也尝试过使用QFontDatabase :: addApplicationFont() 没有运气。

如果我应该使用FontLoader,我是否必须告诉整个文本项 app当字体不同时(当用户切换语言?)那可能 是一项艰巨的任务。如果可能的话,我宁愿通过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";

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

当我运行我的应用程序时,我没有看到列表中的字体 (通过FC_DEBUG和fc-list)。

我非常感谢有关解决此问题的任何见解/帮助。 感谢

1 个答案:

答案 0 :(得分:0)

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